Why is "git tag --contains" so slow?
- From
Theodore Ts'o <tytso@mit.edu>
- Date
- Jul 1, 2010, 00:54 UTC
- Message-ID
- <E1OU82h-0001xY-3b@closure.thunk.org>
I'm trying to write a script that can determine the first kernel release (i.e., a tag of that matchs v2.6.*) that contains a particular commit.
I can do this using "git tag --contains <commit-id>", but it's quite slow. It takes something like 8-9 seconds. (8.5 seconds of user time, 8.6 times of wall clock, to be precise).
I can get the information much faster using "gitk -1 <commit-id>", which finishes painting the screen in under 2 seconds, but that throws up a GUI and then a human has to pull the information out using their eyes. (Yeah, or I could figure out where in the 11,631 lines of Tcl script the "preceeds" line is calculated, but I figured I'd ask here first.)
Is there a better way of calculating what I want from the command line using the built-in native git tools? And if so, why is git tag --contains apparently 4 times slower than gitk at performing this task?
Thanks,
- Ted