Re: [PATCH 0/3] merge -Xindex-only
- From
Thomas Rast <trast@inf.ethz.ch>
- Date
- Jul 8, 2013, 15:44 UTC
- Message-ID
- <87k3l1gip1.fsf@linux-k42r.v.cablecom.net>
- In-Reply-To
- <51DAD8F2.5070008@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu> writes:
Show 30 quoted lines
> [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
doneThat 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