diff options
Diffstat (limited to 'upload-pack.c')
-rw-r--r-- | upload-pack.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/upload-pack.c b/upload-pack.c index d0bc3ca07a..08efb1de7b 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -688,11 +688,12 @@ static void receive_needs(void) } /* return non-zero if the ref is hidden, otherwise 0 */ -static int mark_our_ref(const char *refname, const struct object_id *oid) +static int mark_our_ref(const char *refname, const char *refname_full, + const struct object_id *oid) { struct object *o = lookup_unknown_object(oid->hash); - if (ref_is_hidden(refname)) { + if (ref_is_hidden(refname, refname_full)) { o->flags |= HIDDEN_REF; return 1; } @@ -700,10 +701,12 @@ static int mark_our_ref(const char *refname, const struct object_id *oid) return 0; } -static int check_ref(const char *refname, const struct object_id *oid, +static int check_ref(const char *refname_full, const struct object_id *oid, int flag, void *cb_data) { - mark_our_ref(refname, oid); + const char *refname = strip_namespace(refname_full); + + mark_our_ref(refname, refname_full, oid); return 0; } @@ -726,7 +729,7 @@ static int send_ref(const char *refname, const struct object_id *oid, const char *refname_nons = strip_namespace(refname); struct object_id peeled; - if (mark_our_ref(refname, oid)) + if (mark_our_ref(refname_nons, refname, oid)) return 0; if (capabilities) { |