upload-pack: strip refs before calling ref_is_hidden()

Make hideRefs handling in upload-pack consistent with the behavior
described in the documentation by stripping refs before comparing them
with prefixes in hideRefs.

Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Lukas Fleischer 2015-11-05 07:07:29 +01:00 committed by Junio C Hamano
parent 92cab492ba
commit 00b293e519

View file

@ -692,7 +692,7 @@ static int mark_our_ref(const char *refname, const struct object_id *oid)
{ {
struct object *o = lookup_unknown_object(oid->hash); struct object *o = lookup_unknown_object(oid->hash);
if (ref_is_hidden(refname)) { if (refname && ref_is_hidden(refname)) {
o->flags |= HIDDEN_REF; o->flags |= HIDDEN_REF;
return 1; return 1;
} }
@ -703,7 +703,7 @@ static int mark_our_ref(const char *refname, const struct object_id *oid)
static int check_ref(const char *refname, const struct object_id *oid, static int check_ref(const char *refname, const struct object_id *oid,
int flag, void *cb_data) int flag, void *cb_data)
{ {
mark_our_ref(refname, oid); mark_our_ref(strip_namespace(refname), oid);
return 0; return 0;
} }
@ -726,7 +726,7 @@ static int send_ref(const char *refname, const struct object_id *oid,
const char *refname_nons = strip_namespace(refname); const char *refname_nons = strip_namespace(refname);
struct object_id peeled; struct object_id peeled;
if (mark_our_ref(refname, oid)) if (mark_our_ref(refname_nons, oid))
return 0; return 0;
if (capabilities) { if (capabilities) {