From: Junio C Hamano Date: Sun, 5 May 2013 18:12:12 +0000 (-0700) Subject: Merge branch 'fc/push-with-export-reporting-result' X-Git-Tag: v1.8.3-rc2~12 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/2be2eb970c14a35a9a0a5a73130ade8c87ab8ff2?ds=inline;hp=-c Merge branch 'fc/push-with-export-reporting-result' * fc/push-with-export-reporting-result: transport-helper: improve push messages --- 2be2eb970c14a35a9a0a5a73130ade8c87ab8ff2 diff --combined t/t5801-remote-helpers.sh index 69212cdde1,214aa40ca4..dbb02e2afd --- a/t/t5801-remote-helpers.sh +++ b/t/t5801-remote-helpers.sh @@@ -6,7 -6,6 +6,7 @@@ test_description='Test remote-helper import and export commands' . ./test-lib.sh +. "$TEST_DIRECTORY"/lib-gpg.sh if ! type "${BASH-bash}" >/dev/null 2>&1; then skip_all='skipping remote-testgit tests, bash not available' @@@ -167,23 -166,18 +167,37 @@@ test_expect_success 'push ref with exis compare_refs local dup server dup ' +test_expect_success GPG 'push signed tag' ' + (cd local && + git checkout master && + git tag -s -m signed-tag signed-tag && + git push origin signed-tag + ) && + compare_refs local signed-tag^{} server signed-tag^{} && + test_must_fail compare_refs local signed-tag server signed-tag +' + +test_expect_success GPG 'push signed tag with signed-tags capability' ' + (cd local && + git checkout master && + git tag -s -m signed-tag signed-tag-2 && + GIT_REMOTE_TESTGIT_SIGNED_TAGS=1 git push origin signed-tag-2 + ) && + compare_refs local signed-tag-2 server signed-tag-2 +' + + 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 --combined transport-helper.c index 5f8d075ed8,e561ec7468..835815f61d --- a/transport-helper.c +++ b/transport-helper.c @@@ -25,7 -25,6 +25,7 @@@ struct helper_data option : 1, push : 1, connect : 1, + signed_tags : 1, no_disconnect_req : 1; char *export_marks; char *import_marks; @@@ -192,8 -191,6 +192,8 @@@ static struct child_process *get_helper refspecs[refspec_nr++] = xstrdup(capname + strlen("refspec ")); } else if (!strcmp(capname, "connect")) { data->connect = 1; + } else if (!strcmp(capname, "signed-tags")) { + data->signed_tags = 1; } else if (!prefixcmp(capname, "export-marks ")) { struct strbuf arg = STRBUF_INIT; strbuf_addstr(&arg, "--export-marks="); @@@ -413,11 -410,9 +413,11 @@@ static int get_exporter(struct transpor /* we need to duplicate helper->in because we want to use it after * fastexport is done with it. */ fastexport->out = dup(helper->in); - fastexport->argv = xcalloc(5 + revlist_args->nr, sizeof(*fastexport->argv)); + fastexport->argv = xcalloc(6 + revlist_args->nr, sizeof(*fastexport->argv)); fastexport->argv[argc++] = "fast-export"; fastexport->argv[argc++] = "--use-done-feature"; + fastexport->argv[argc++] = data->signed_tags ? + "--signed-tags=verbatim" : "--signed-tags=warn-strip"; if (data->export_marks) fastexport->argv[argc++] = data->export_marks; if (data->import_marks) @@@ -806,6 -801,7 +806,7 @@@ static int push_refs_with_export(struc 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);