Re: [PATCH v2] blame: avoid checking if a file exists on the working tree if a revision is provided
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Nov 17, 2015, 23:01 UTC
- Message-ID
- <CAPig+cQcmtZJmm_FGMNL4OCTgdFZGyLjVrwbfCCp+0kwBeFuRQ@mail.gmail.com>
- In-Reply-To
- <20151117224809.GE27862@sigill.intra.peff.net>
On Tue, Nov 17, 2015 at 5:48 PM, Jeff King <peff@peff.net> wrote:
Show 16 quoted lines
> On Tue, Nov 17, 2015 at 12:11:25AM -0500, Eric Sunshine wrote: >> > blame content even if the path provided does match an existing >> > blob on said revision. >> >> git-blame documentation does not advertise "blame <file> <rev>" as a >> valid invocation. It does advertise "blame <rev> -- <file>", and this >> case already works correctly even when <file> does not exist in the >> worktree. > > Hmm. Out of curiosity I tried: > > git blame v2.4.0 -- t/t6031-merge-recursive.sh > > and it segfaults. This bisects to Max's recent 1b0d400 (blame: extract > find_single_final, 2015-10-30), but I do not see anything obviously > wrong with it from a quick glance.
In the original code, sb->final received was assigned value of obj, which may have gone through deref_tag(), however, after 1b0d400, sb->final is unconditionally assigned the original value of obj, not the (potentially) deref'd value.