Michael Haggerty <[email protected]> writes:
> [Resend because of address confusion in replied-to email.]
>
> On 07/07/2013 08:00 PM, Thomas Rast wrote:
>> I recently looked into making merge-recursive more useful as a modular
>> piece in various tasks, e.g. Michael's git-imerge and the experiments
>> I made in showing evil merges.
>>
>> This miniseries is the extremely low-hanging fruit. If it makes a
>> good first step for git-imerge, perhaps it can go in like this. It's
>> not a big speedup (about 2.2s vs 2.4s in a sample conflicting merge in
>> git.git), but it does feel much cleaner to avoid touching the worktree
>> unless actually necessary.
>>
>> Otherwise it's probably not worth it just yet; for what I want to do
>> with it, we need some more reshuffling of things.
>
> Interesting.
>
> For git-imerge, it would be nice to speed up merges by skipping the
> working tree updates. 10% might not be so noticeable, but every little
> bit helps :-)
>
> But the killer benefit would be if git-imerge could do some of its
> automatic merge-testing and autofilling in the background while the user
> is resolving conflicts in the main index and working tree.
>
> Is it possible to use this option with an alternate index file (e.g.,
> via the GIT_INDEX_FILE environment variable)? Can it be made to leave
> other shared state (e.g., MERGE_HEAD) alone? If so, maybe it's already
> there.
GIT_INDEX_FILE yes, that one works out of the box.
I think for the shared state, the following is a (probably) ridiculously
unsupported yet magic way of achieving this:
mkdir -p unshared/.git
cd unshared/.git
for f in ../../.git/*; do
case "$f" in
*HEAD | index)
cp "$f" .
;;
*)
ln -s "$f" .
;;
esac
done
That gives you a repository that propagates ref changes and object
writing, but does not propagate changes to index, HEAD, FETCH_HEAD or
MERGE_HEAD. Which might just be what you need?
Note that as far as I'm concerned, this is a live handgrenade. It could
blow up in your face at any time, but it probably has its applications...
--
Thomas Rast
trast@{inf,student}.ethz.ch
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html