Re: [PATCH] GIT commit statistics.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Martin Langhoff <martin.langhoff@...>
Cc: <git@...>
Date: Sunday, November 13, 2005 - 11:33 pm

Martin Langhoff <martin.langhoff@gmail.com> writes:


Well, obviously you could resolve them ;-).  But if you are
rebasing just to reduce trivial mini-merges, it might make more
sense to honestly record the merge if the rebase involves
conflict resolution.  After all, the reason rebase got conflicts
is because the development trail by somebody else that has been
already committed to the shared "master" branch overlapped what
you were doing in your "master" branch, isn't it?

In your message you indicated that you use "format-patch" piped
to "am".  I think that is a better approach than "rebase" these
days; the conflict can be handled easier with that approach, and
if you use "--3way" flag you do not even have to worry about
patches in your branch that is already there in the shared
"master" (your "origin") branch.

So instead of running "git rebase origin" at this point, I may
do something like this [*1*]:

	$ git-reset --hard origin
        $ git-format-patch -k --stdout origin ORIG_HEAD | git am -3 -k

The first step rewinds my "master" (the original is stored in
ORIG_HEAD), and the second step extracts the commits that were
in my master but not in origin in a patch form, an replay them
on top of the "master" (which was rewound to "origin").

"git-am" would stop at the first unapplicable patch if there is
a conflict, leaving the conflicting patch in .dotest/patch.
I have to fix it up before going further.  Here is how.

1. "git am" 3-way fallback would have kicked in, because I have
   all the blobs the patch is supposed to apply to, and my
   working tree and index is in a state just like when I am
   resolving a conflicting merge after a pull.  Clean up the
   conflict in the working tree, build-test and all as usual.

2. Run "git diff HEAD >.dotest/patch" to record what the patch
   should have been if it were to apply cleanly on top of the
   previous state.  If I did a noteworthy adjustment to the
   patch, I might also edit .dotest/final-commit to update the
   commit log message.

3. Then reset the working tree and index before the failed
   application of this patch with "git reset --hard".

After that:

	$ git am -3

would let me restart from that commit that did not replay well.


This was recently added by Linus to help git-merge do that:

	git-read-tree --trivial -m -u $O $A $B

The command exits with a non-zero status, without touching index
nor working tree, when the merge is not "truly trivial".
Otherwise it does its thing -- the trivial in-index merge is
done, files in working tree updated and the only thing left for
you to do is to create a commit having parent $A and $B.

Would that help?

[Footnote]

*1* This is what the "make rebase restartable" comment in TODO
list is about, and I wanted to rewrite "rebase" to do exactly
these two commands, but I got distracted ;-).


-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Comments on recursive merge.., Linus Torvalds, (Mon Nov 7, 12:48 pm)
Re: Comments on recursive merge.., Fredrik Kuivinen, (Mon Nov 7, 6:58 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Mon Nov 7, 8:13 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Mon Nov 7, 8:33 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Fri Nov 11, 6:25 pm)
Re: Comments on recursive merge.., Ryan Anderson, (Sat Nov 12, 2:35 am)
[PATCH] GIT commit statistics., Junio C Hamano, (Sat Nov 12, 3:44 am)
Re: [PATCH] GIT commit statistics., Martin Langhoff, (Sat Nov 12, 8:19 am)
Re: [PATCH] GIT commit statistics., Petr Baudis, (Sun Nov 13, 7:11 am)
Re: [PATCH] GIT commit statistics., Junio C Hamano, (Sun Nov 13, 6:59 am)
Re: [PATCH] GIT commit statistics., Martin Langhoff, (Sun Nov 13, 4:42 pm)
Re: [PATCH] GIT commit statistics., Junio C Hamano, (Sun Nov 13, 11:33 pm)
Re: [PATCH] GIT commit statistics., Martin Langhoff, (Mon Nov 14, 12:01 am)
Re: [PATCH] GIT commit statistics., Junio C Hamano, (Mon Nov 14, 2:06 am)
Re: [PATCH] GIT commit statistics., Martin Langhoff, (Mon Nov 14, 4:51 am)
Re: [PATCH] GIT commit statistics., Junio C Hamano, (Mon Nov 14, 11:00 pm)
Re: [PATCH] GIT commit statistics., Junio C Hamano, (Mon Nov 14, 5:27 am)
Re: [PATCH] GIT commit statistics., Petr Baudis, (Mon Nov 14, 5:25 am)
Re: [PATCH] GIT commit statistics., Martin Langhoff, (Mon Nov 14, 5:25 pm)
Re: [PATCH] GIT commit statistics., Johannes Schindelin, (Sat Nov 12, 3:04 pm)
Re: [PATCH] GIT commit statistics., Petr Baudis, (Sat Nov 12, 8:53 am)
Re: [PATCH] GIT commit statistics., Catalin Marinas, (Tue Nov 15, 6:04 am)
Re: [PATCH] GIT commit statistics., Chuck Lever, (Tue Nov 15, 11:29 am)
Re: Comments on recursive merge.., Linus Torvalds, (Fri Nov 11, 6:53 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Fri Nov 11, 8:42 pm)
Re: Comments on recursive merge.., Johannes Schindelin, (Tue Nov 8, 7:58 am)
Re: Comments on recursive merge.., Fredrik Kuivinen, (Tue Nov 8, 5:02 pm)
Re: Comments on recursive merge.., Johannes Schindelin, (Tue Nov 8, 7:04 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Tue Nov 8, 5:52 pm)
Re: Comments on recursive merge.., Fredrik Kuivinen, (Tue Nov 8, 6:36 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Tue Nov 8, 7:05 pm)
Re: Comments on recursive merge.., Petr Baudis, (Tue Nov 8, 8:32 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Tue Nov 8, 8:51 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Tue Nov 8, 8:59 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Tue Nov 8, 9:22 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Tue Nov 8, 9:42 pm)
Re: Comments on recursive merge.., Johannes Schindelin, (Tue Nov 8, 7:18 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Tue Nov 8, 8:18 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Wed Nov 9, 2:10 am)
Re: Comments on recursive merge.., Junio C Hamano, (Tue Nov 8, 5:47 pm)
Re: Comments on recursive merge.., Junio C Hamano, (Mon Nov 7, 8:59 pm)
Re: Comments on recursive merge.., Linus Torvalds, (Mon Nov 7, 12:56 pm)
[PATCH] merge-recursive: Only print relevant rename messages, Fredrik Kuivinen, (Mon Nov 7, 7:19 pm)