From: Gabriel Souza Franco Date: Sun, 28 Feb 2016 22:22:24 GMT Subject: [PATCH v2] fetch-pack: fix object_id of exact sha1 Message-ID: <1456698144-11519-1-git-send-email-gabrielfrancosouza@gmail.com> In-Reply-To: Commit 58f2ed0 (remote-curl: pass ref SHA-1 to fetch-pack as well, 2013-12-05) added support for specifying a SHA-1 as well as a ref name. Add support for specifying just a SHA-1 and set the ref name to the same value in this case. Signed-off-by: Gabriel Souza Franco --- Not the cleanest conditional I've ever written, but it should handle all cases correctly. builtin/fetch-pack.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index 79a611f..763f510 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -16,10 +16,12 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc, struct ref *ref; struct object_id oid; - if (!get_oid_hex(name, &oid) && name[GIT_SHA1_HEXSZ] == ' ') - name += GIT_SHA1_HEXSZ + 1; - else + if (get_oid_hex(name, &oid) || + (name[GIT_SHA1_HEXSZ] != ' ' && + name[GIT_SHA1_HEXSZ] != '\0')) oidclr(&oid); + else if (name[GIT_SHA1_HEXSZ] == ' ') + name += GIT_SHA1_HEXSZ + 1; ref = alloc_ref(name); oidcpy(&ref->old_oid, &oid); -- 2.7.2