On Tuesday 16 November 2010 06:02:27 pm Konstantin Khomoutov
> 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.
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
For more options, visit this group at