[git-users] Looking up SHA1s

2010-11-16 Thread Martin Fick
Hello,

This might be a silly question, but I can't figure it out: is 
there a way to get all the tags and branches whose tip 
includes a certain blob (by SHA1) in its tree object?

Thanks,

-Martin

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To post to this group, send email to git-us...@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.



Re: [git-users] Re: Looking up SHA1s

2010-11-16 Thread Martin Fick
On Tuesday 16 November 2010 06:02:27 pm Konstantin Khomoutov 
wrote:
 Martin Fick wrote:
  This might be a silly question, but I can't figure it
  out: is there a way to get all the tags and branches
  whose tip includes a certain blob (by SHA1) in its tree
  object?
 
 I doubt there is any ready-made solution for this corner
  case, but you could roll your own using git-ls-tree
  low-level command -- given a commit name, it outputs a
  list of objects the tree linked to that commit
  references, and that output includes type, sha1 and name
  of each of those objects. So you could write a script
  which starts with a given commit name, calls git-ls-tree
  on it, tries to find a matching sha1 in its output, and
  that fails, descends to each listed tree objects doing
  the same thing on them until either the hierarchy is
  exhausted or the matching sha1 is found.

Thanks, I actually just did something similar.  Although 
the -r option to git-ls-tree seems to recurse for me
automatically.  A few simple switches to automatically
iterate over the list of branches and tags and... a simple
working generic solution.  I am still kinda curious if there
isn't a much better way since this may not scale well on 
large repos?  It takes about ~1s on a cached gerrit repo.

-Martin

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To post to this group, send email to git-us...@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.