Re: git filter-branch not removing commits when it should in 2.7.0
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 19, 2016, 21:46 UTC
- Message-ID
- <xmqq37tt9r9g.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20160119213705.GA28656@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 12 quoted lines
> On Tue, Jan 19, 2016 at 01:35:25PM -0800, Junio C Hamano wrote:
>
>> In other words, would the fix be a one-liner like this?
>> [...]
>> - tree="$commit^{tree}"
>> + tree=$(git rev-parse "$commit^{tree}")
>
> Yes, I was just writing up the commit message for it. :-/
>
> It _is_ slower, though, because it introduces an extra rev-parse. When
> we could in fact be getting rid of one. Give me a moment to complete a
> few timing tests and post the results.Good point.
We should do that rev-parse in the helper function. That rev-parse is there only because the skip-empty code wants to know the exact object name when comparing. There is no reason for this code to do it for the helper--the helper, if (and only if) it is called, can do the rev-parse itself, and we can still omit the overhead when we are not skipping empty ones.