Re: How can I download a git commit as a diff patch?

From: Jakub Narebski
Date: Wed Sep 30 2009 - 16:40:43 EST


On Wed, 30 Sep 2009, Lennart Sorensen wrote:
> On Wed, Sep 30, 2009 at 01:10:51PM -0700, Jakub Narebski wrote:

> > Or better yet, if given installation of gitweb supports it, on the
> > 'patch' link just on the right of 'raw' view. Such patch can be
> > applied better by git-am (but both should work for GNU patch or
> > git-apply).
> >
> > Yes, by default for merges the 'commitdiff' view (and the 'raw'
> > version, i.e. 'commitdiff_plain' view) shows **combined** diff of
> > changes brought by merge (see git-diff manpage for details on this
> > format).
> >
> > For merge commit you have to choose which of parents you want to have
> > diff from. Go to 'commit' view, there in the header would be two or
> > more parents. Click on the 'diff' link beside chosen parent, check if
> > it is the diff you want to get, and then click on 'patch' (or 'raw')
> > link.
>
> Is there a git command to show me a diff I can use with patch if I want to
> select a given patch as long as I can tell it which tree I want to follow?
> I don't care to use gitweb if I can do it with the command line git.

You can specify parent explicitely: "git diff <rev>^1 <rev>" for diff
to first parent, e.g. "git diff HEAD^ HEAD".

>
> git show obviously shows the git combined diff format, at least by default.
>
> Or is the idea of trying to use the diff from the merge commit just
> silly in the first place?

Just so you know that this single diff is not enough to redo a merge.
It is only partial information.


BTW. there is also "git diff-tree -m <rev>") to show diff to *all*
parents at once:

-m By default, `git-diff-tree --stdin` does not show differences for
merge commits. With this flag, it shows differences to that commit
from all of its parents. See also `-c`.

--
Jakub Narebski
Poland
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/