aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2013-05-03 18:41:59 -0500
committerJunio C Hamano <gitster@pobox.com>2013-05-05 11:10:53 -0700
commitb056620f6fe7f05834716109fa79e7880a11bc36 (patch)
tree10f1889cd18adc142843e6725fafbf982f8b7b92
parent571cdfd4e0a4cc24e215a5d5f0cb24292a9d7929 (diff)
downloadgit-b056620f6fe7f05834716109fa79e7880a11bc36.tar.gz
git-b056620f6fe7f05834716109fa79e7880a11bc36.tar.xz
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>
-rwxr-xr-xt/t5801-remote-helpers.sh14
-rw-r--r--transport-helper.c1
2 files changed, 15 insertions, 0 deletions
diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
index f387027c0..214aa40ca 100755
--- a/t/t5801-remote-helpers.sh
+++ b/t/t5801-remote-helpers.sh
@@ -166,4 +166,18 @@ test_expect_success 'push ref with existing object' '
compare_refs local dup server dup
'
+test_expect_success 'push messages' '
+ (cd local &&
+ git checkout -b new_branch master &&
+ echo new >>file &&
+ git commit -a -m new &&
+ git push origin new_branch &&
+ git fetch origin &&
+ echo new >>file &&
+ git commit -a -m new &&
+ git push origin new_branch 2> msg &&
+ ! grep "\[new branch\]" msg
+ )
+'
+
test_done
diff --git a/transport-helper.c b/transport-helper.c
index dcd8d9741..e561ec746 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -801,6 +801,7 @@ static int push_refs_with_export(struct transport *transport,
if (private && !get_sha1(private, sha1)) {
strbuf_addf(&buf, "^%s", private);
string_list_append(&revlist_args, strbuf_detach(&buf, NULL));
+ hashcpy(ref->old_sha1, sha1);
}
free(private);