Michael Haggerty <mhagger@xxxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html