Thread (5 messages) flat view 5 messages, 4 authors, 2016-06-15

Re: Finding a commit

From: Thomas Rast <hidden>
Date: 2016-06-15 22:47:35

Daniele Segato wrote:
On Wed, Oct 21, 2009 at 1:29 PM, Soham Mehta [off-list ref] wrote:
quoted
Because SHA1 can change if a commit is cherry-picked around, I cannot just
grep for that SHA1 from git-rev-list or git-log on 'y'. I need a way to know
if a commit with identical changes (as in 'x') is also present in 'y'.
man git-patch-id (online at http://git.or.cz/man/git-patch-id).

Note that if the cherry-pick conflicted, you'll get a different
patch-id.
I'm really not an expert of git..

but A commit is something like:

Commit -> Tree ---> Blob1, Blob2, Blob3

Commit, Trees and Blobs are all identified by sha1
the commit should keep information on the author, the "parent"
commit(s) and so on..
the tree should just keep the "snapshot" of the data..

so I think that if you search for the SHA-1 of the tree you should be fine..
Not if you really want to find out if X was cherry-picked into this
repository, because the tree is the *final state* at that commit,
which of course includes all preceding changes.

So suppose you have two patches A.diff and B.diff introducing files of
the same name; then if you combine them into history as

  A -- B

the tree state at B has both files, and hence is different from the
tree state of B' in

  B' -- A'

because there it only has the file B.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help