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.

Reply via email to