зеркало из https://github.com/microsoft/git.git
Attempt to delay prepare_alt_odb during get_sha1
Not every input value passed to get_sha1 is an abbreviated SHA-1.
Its actually quite common for refs to be passed and for those
refs to resolve to full SHA-1s, in which case we may not need to
initialize the alternate object database list in this process.
I'm relocating the call to prepare_alt_odb closer to the code
that actually needs it to maintain the fix first introduced by
Junio in 99a19b43
(to avoid ambiguous SHA-1 abbreviations from
being accepted). This allows us to avoid the alt_odb list setup
if we won't actually need it.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
7dc24aa5a6
Коммит
693d2bc625
|
@ -133,6 +133,7 @@ static int find_unique_short_object(int len, char *canonical,
|
|||
int has_unpacked, has_packed;
|
||||
unsigned char unpacked_sha1[20], packed_sha1[20];
|
||||
|
||||
prepare_alt_odb();
|
||||
has_unpacked = find_short_object_filename(len, canonical, unpacked_sha1);
|
||||
has_packed = find_short_packed_object(len, res, packed_sha1);
|
||||
if (!has_unpacked && !has_packed)
|
||||
|
@ -654,7 +655,6 @@ int get_sha1_with_mode(const char *name, unsigned char *sha1, unsigned *mode)
|
|||
const char *cp;
|
||||
|
||||
*mode = S_IFINVALID;
|
||||
prepare_alt_odb();
|
||||
ret = get_sha1_1(name, namelen, sha1);
|
||||
if (!ret)
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче