Junio C Hamano, Mon, Sep 01, 2008 12:38:25 +0200: > Alex Riesen <raa.lkml@xxxxxxxxx> writes: > > > ... IOW, copy the commit > > resolution from some other merge commit. Maybe can be a way to use > > rerere mechanism with that? > > If you know which merge I did you want to steal from, you can prime your > rerere database by pretending to be me, doing the merge. Something like: > > $ git checkout $merge^1 ;# detach to the parent of merge > $ git merge $merge^2 ;# pretend you were me to redo it > $ git diff -R $merge | git apply --index ;# and get what I did I ended up using $ git checkout Merge^1 $ git merge Merge^2 $ git diff -R Merge | git apply $ git diff -R Merge --name-only -z | git update-index -z --stdin $ git rerere Just git apply --index complained about the files missing from the index: $ git tag Merge c5e2ace70271b481632aaf987361027ca4592df6 $ gco Merge^1 Previous HEAD position was c5e2ace... Merge branch 'jc/better-conflict-resolution' into next HEAD is now at 2392877... Merge branch 'master' into next $ git merge Merge^2 Auto-merging Documentation/config.txt Auto-merging Documentation/git-checkout.txt CONFLICT (content): Merge conflict in Documentation/git-checkout.txt Auto-merging builtin-checkout.c CONFLICT (content): Merge conflict in builtin-checkout.c Auto-merging builtin-merge-recursive.c Auto-merging t/t6023-merge-file.sh Auto-merging t/t7201-co.sh CONFLICT (content): Merge conflict in t/t7201-co.sh Auto-merging xdiff-interface.c Auto-merging xdiff-interface.h Recorded preimage for 'Documentation/git-checkout.txt' Recorded preimage for 'builtin-checkout.c' Recorded preimage for 't/t7201-co.sh' Automatic merge failed; fix conflicts and then commit the result. $ git diff -R Merge |git apply --index error: Documentation/git-checkout.txt: does not exist in index error: builtin-checkout.c: does not exist in index error: t/t7201-co.sh: does not exist in index > $ git rerere ;# have rerere record the resolution Well, it works, but it's a bit of work and hard to automate (needs a working tree). An option to merge: $ git merge <branch> conflict ... investigate ... find a resolution in <resolution> $ git reset --hard $ git merge --rerere <resolution> branch check... Ok. $ git commit or rerere: $ git merge <branch> conflict ... investigate ... find a resolution in <resolution> $ git rerere <resolution> $ git reset --hard $ git merge <branch> check... Ok. $ git commit These could be more convenient. -- 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