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.