transport-helper: improve push messages
If there's already a remote-helper tracking ref, we can fetch the SHA-1 to report proper push messages (as opposed to always reporting [new branch]). The remote-helper currently can specify the old SHA-1 to avoid this problem, but there's no point in forcing all remote-helpers to be aware of git commit ids; they should be able to be agnostic of them. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Felipe Contreras committed
May 3, 2013 at 18:41 UTC
b056620f6fe7f05834716109fa79e7880a11bc36
2 files changed
+15
t/t5801-remote-helpers.sh
+14
@@ -166,4 +166,18 @@ test_expect_success 'push ref with existing object' '
166
compare_refs local dup server dup
167
'
168
169
+test_expect_success 'push messages' '
170
+ (cd local &&
171
+ git checkout -b new_branch master &&
172
+ echo new >>file &&
173
+ git commit -a -m new &&
174
+ git push origin new_branch &&
175
+ git fetch origin &&
176
+ echo new >>file &&
177
+ git commit -a -m new &&
178
+ git push origin new_branch 2> msg &&
179
+ ! grep "\[new branch\]" msg
180
+ )
181
+'
182
+
183
test_done
transport-helper.c
+1
@@ -801,6 +801,7 @@ static int push_refs_with_export(struct transport *transport,
801
if (private && !get_sha1(private, sha1)) {
802
strbuf_addf(&buf, "^%s", private);
803
string_list_append(&revlist_args, strbuf_detach(&buf, NULL));
804
+ hashcpy(ref->old_sha1, sha1);
805
}
806
free(private);
807