diff options
author | Jeff King <peff@peff.net> | 2019-04-05 14:06:04 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-04-16 16:58:21 +0900 |
commit | 013fd7ada3c81cec8f0c48427c77394028707c2e (patch) | |
tree | 49805107408afc16c1b5c0f4d86c49d4901e63f9 /ident.c | |
parent | t5319: drop useless --buffer from cat-file (diff) | |
download | tgif-013fd7ada3c81cec8f0c48427c77394028707c2e.tar.xz |
midx: check both pack and index names for containment
A midx file (and the struct we parse from it) contains a list of all of
the covered packfiles, mentioned by their ".idx" names (e.g.,
"pack-1234.idx", etc). And thus calls to midx_contains_pack() expect
callers to provide the idx name.
This works for most of the calls, but the one in open_packed_git_1()
tries to feed a packed_git->pack_name, which is the ".pack" name,
meaning we'll never find a match (even if the pack is covered by the
midx).
We can fix this by converting the ".pack" to ".idx" in the caller.
However, that requires allocating a new string. Instead, let's make
midx_contains_pack() a bit friendlier, and allow it take _either_ the
.pack or .idx variant.
All cleverness in the matching code is credited to René. Bugs are mine.
There's no test here, because while this does fix _a_ bug, it's masked
by another bug in that same caller. That will be covered (with a test)
in the next patch.
Helped-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ident.c')
0 files changed, 0 insertions, 0 deletions