Subject: Re: [PATCH] doc: don't claim that cherry-pick calls patch-id

From: "Michael S. Tsirkin" <[email-masked]>
Date: Wed, 25 Sep 2013 01:28:22 +0300

On Tue, Sep 24, 2013 at 03:14:09PM -0700, Jonathan Nieder wrote:
> Michael S. Tsirkin wrote:
> 
> > Subject: [PATCH] doc: don't claim that cherry-pick calls patch-id
> 
> s/cherry-pick/cherry/
> 
> > The id is already different for binary files.
> > Let's document that they are similar, not identical.
> 
> Thanks.
> 
> [...]
> > --- a/Documentation/git-cherry.txt
> > +++ b/Documentation/git-cherry.txt
> > @@ -13,12 +13,13 @@ SYNOPSIS
> >  DESCRIPTION
> >  -----------
> >  The changeset (or "diff") of each commit between the fork-point and <head>
> > -is compared against each commit between the fork-point and <upstream>.
> > +is compared against diff of each commit between the fork-point and <upstream>.
> 
> I think the old version of this sentence is clearer.
> 
> > -The commits are compared with their 'patch id', obtained from
> > -the 'git patch-id' program.
> > +The diffs are compared with their diff id (sha1) calculated after removing
> > +any whitespace and line numbers (similar but not necessarily identical
> > +to 'patch id', obtained from the 'git patch-id' program).
> 
> The hash used internally is just an implementation detail, so maybe this
> sentence could just be dropped?

I think the fact whitespace is ignored is relevant to users, no?
We probably should drop talking about hash here.

> >  Every commit that doesn't exist in the <upstream> branch
> > -has its id (sha1) reported, prefixed by a symbol.  The ones that have
> > +has its diff id (sha1) reported, prefixed by a symbol.  The ones that have
> 
> Confusingly, here 'id' means 'commit name'.  For example:
> 
>  $ git log --oneline -1 sb/repack-in-c
>  0b63c6a repack: improve warnings about failure of renaming and removing files
>  $ git cherry sb/repack-in-c^ sb/repack-in-c
>  + 0b63c6a5b78f3fdd8c4e4fed4e535e7f4eed4257
> 
> Hope that helps,
> Jonathan