summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-06-23 13:16:23 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-06-23 14:14:09 +0100
commit81e28f0e284a89d8ede573bad8cd494c911099d1 (patch)
treea885e926d8fe31150754dd04659c37926bb11578
parent343e6ff2ea5f63f6d7c7c9a9abf7807832a68ce3 (diff)
Use force flag when pushing tags
Newer versions of git push will not overwrite an existing tag unless the client specifies + on the refspec (or --force). (This is a client-side check.) So add this flag where appropriate, both in dgit itself, and in the test suite.
-rwxr-xr-xdgit2
-rwxr-xr-xtests/tests/drs-push-rejects6
2 files changed, 4 insertions, 4 deletions
diff --git a/dgit b/dgit
index c84fb80..fdc922e 100755
--- a/dgit
+++ b/dgit
@@ -1693,7 +1693,7 @@ sub dopush ($) {
create_remote_git_repo();
}
runcmd_ordryrun @git, qw(push),access_giturl(),
- $forceflag."HEAD:".rrref(), "refs/tags/$tag";
+ $forceflag."HEAD:".rrref(), $forceflag."refs/tags/$tag";
runcmd_ordryrun @git, qw(update-ref -m), 'dgit push', lrref(), 'HEAD';
if ($we_are_responder) {
diff --git a/tests/tests/drs-push-rejects b/tests/tests/drs-push-rejects
index e80620d..3a70947 100755
--- a/tests/tests/drs-push-rejects
+++ b/tests/tests/drs-push-rejects
@@ -98,7 +98,7 @@ mustfail 'sid != sponge' HEAD:refs/dgit/sponge $push_spec2
prep unstable sid
mktag
mustfail 'push is missing tag ref update' $push_spec1
-mustfail 'push is missing head ref update' $push_spec2
+mustfail 'push is missing head ref update' +$push_spec2
mustfail 'pushing unexpected ref' $push_spec HEAD:refs/wombat
mustfail 'pushing multiple heads' $push_spec HEAD:refs/dgit/wombat
mustfail 'pushing multiple tags' $push_spec HEAD:refs/tags/debian/wombat
@@ -139,11 +139,11 @@ mktag
mustsucceed $push_spec # succeeds
mktag
-mustfail 'push is missing head ref update' $push_spec
+mustfail 'push is missing head ref update' $push_spec1 +$push_spec2
git commit --allow-empty -m 'Dummy update'
mktag
-mustfail 'not replacing previously-pushed version' $push_spec
+mustfail 'not replacing previously-pushed version' +$push_spec1 +$push_spec2
git reset --hard HEAD~
prep_dm_mangle () {