Re: Testing if a certain commit is in the current branch
- From
- Frans Pop <elendil@planet.nl>
- Date
- Jan 27, 2010, 15:27 UTC
- Message-ID
- <201001271627.45715.elendil@planet.nl>
- In-Reply-To
- <20100127150834.GG9553@machine.or.cz>
On Wednesday 27 January 2010, Petr Baudis wrote:
Show 7 quoted lines
> > Great! If the commit ID is not present that only takes 1 sec versus 11 > > secs for my test. (If the commit _is_ present and fairly recent my > > test can be faster, but 11 secs delay when it's not present hurts > > more.) > > Isn't something very wrong if grepping the log output is faster than > simple merge-base call? Can you post exact numbers?
It's only faster if the commit is present very early in the log. The reason is probably that because of the '-q' option it does not actually read the full log, but breaks out as soon as it's found a match.
In my test I had an elapsed time of ~0.5 sec (versus 1 sec for Junio's test). And here's a grep for the very first commit:
$ time git log --pretty=format:%H | grep -q 48404cb50b0b547
real 0m0.010s user 0m0.000s sys 0m0.012s