diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-27 13:00:20 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-27 13:00:21 -0700 |
commit | a730ea3c3aa8d09cd69d114ea4160049d9a4fd04 (patch) | |
tree | fb0a3b681bd342b4ab1c89ab04cf7c601dbe0d3a /upload-pack.c | |
parent | Merge branch 'js/completion-ctags-pattern-substitution-fix' into maint (diff) | |
parent | upload-pack: do not check NULL return of lookup_unknown_object (diff) | |
download | tgif-a730ea3c3aa8d09cd69d114ea4160049d9a4fd04.tar.xz |
Merge branch 'jk/smart-http-hide-refs' into maint
The transfer.hiderefs support did not quite work for smart-http
transport.
* jk/smart-http-hide-refs:
upload-pack: do not check NULL return of lookup_unknown_object
upload-pack: fix transfer.hiderefs over smart-http
Diffstat (limited to 'upload-pack.c')
-rw-r--r-- | upload-pack.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/upload-pack.c b/upload-pack.c index b531a325d2..aa84576500 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -681,7 +681,7 @@ static void receive_needs(void) } /* return non-zero if the ref is hidden, otherwise 0 */ -static int mark_our_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data) +static int mark_our_ref(const char *refname, const unsigned char *sha1) { struct object *o = lookup_unknown_object(sha1); @@ -689,12 +689,16 @@ static int mark_our_ref(const char *refname, const unsigned char *sha1, int flag o->flags |= HIDDEN_REF; return 1; } - if (!o) - die("git upload-pack: cannot find object %s:", sha1_to_hex(sha1)); o->flags |= OUR_REF; return 0; } +static int check_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data) +{ + mark_our_ref(refname, sha1); + return 0; +} + static void format_symref_info(struct strbuf *buf, struct string_list *symref) { struct string_list_item *item; @@ -713,7 +717,7 @@ static int send_ref(const char *refname, const unsigned char *sha1, int flag, vo const char *refname_nons = strip_namespace(refname); unsigned char peeled[20]; - if (mark_our_ref(refname, sha1, flag, NULL)) + if (mark_our_ref(refname, sha1)) return 0; if (capabilities) { @@ -767,8 +771,8 @@ static void upload_pack(void) advertise_shallow_grafts(1); packet_flush(1); } else { - head_ref_namespaced(mark_our_ref, NULL); - for_each_namespaced_ref(mark_our_ref, NULL); + head_ref_namespaced(check_ref, NULL); + for_each_namespaced_ref(check_ref, NULL); } string_list_clear(&symref, 1); if (advertise_refs) |