Re: Merge with git-pasky II.
- From
Junio C Hamano <junkio@cox.net>
- Date
- Apr 15, 2005, 00:58 UTC
- Message-ID
- <7v7jj4q2j2.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20050414233159.GX22699@pasky.ji.cz>
>>>>> "PB" == Petr Baudis <pasky@ucw.cz> writes: >> I think the above would result in what SCM person would call >> "merge upstream/sidestream changes into my working directory".
PB> And that's exactly what I'm doing now with git merge. ;-) In fact, PB> ideally the whole change in my scripts when your script is finished PB> would be replacing
PB> checkout-cache `diff-tree` # symbolic PB> git diff $base $merged | git apply
PB> with
PB> merge-tree.pl -b $base $(tree-id) $merged | parse-your-output
In the above I presume by $merged you mean the tree ID (or commit ID) the user's working directory is based upon? Well, merge-trees (Linus has a single directory merge-tree already) looks at tree IDs (or commit IDs); it would never involve working files in random state that is not recorded as part of a tree (committed or not). Given that constraints I am not sure how well that would pan out. I have to think about this a bit.
I do like, however, the idea of separating the step of doing any checkout/merge etc. and actually doing them. So the command set of parse-your-output needs to be defined. Based on what I have done so far, it would consist of the following:
- Result is this object $SHA1 with mode $mode at $path (takes one of the trees); you can do update-cache --cacheinfo (if you want to muck with dircache) or cat-file blob (if you want to get the file) or both.
- Result is to delete $path.
- Result is a merge between object $SHA1-1 and $SHA1-2 with mode $mode-1 or $mode-2 at $path.
Would this be a good enough command set?
PB> Doesn't Emacs have something equivalent to ./.vimrc? I've also seen PB> those funny -*- strings.
The former is global per user (that is me including other Perl files I work outside of git context), which is exactly what I said is unacceptable to me. The latter is per file (applying to everybody else who touch the file), so if it is short and sweet I should use one.