Source: dgit
Version: 9.12
Severity: normal
Tags: patch
Using --damp-run with push (to check it will work) writes the local
tag for the current version, but does not update the server.
A subsequent push will fail, because dgit assumes that tag-creation
and pushing to the dgit server is an atomic operation, so interprets
this as a previous push failing. It would be nice if it checked for
this case and just pushed so things get back in sync, but in the
meantime, or if that remains too hard, documenting this foible in the
man page would be helpful.
Attached is a patch for the --damp-run option so that it now says:
Go through many more of the motions: do everything that doesn't
involve either signing things, or making changes on the public
servers. Note that when used with push this writes local tags but
not remote ones, which breaks dgit's assumptions about atomic operations,
so a subsequent dgit push will need --force-reusing-version to succeed.
It would probably be good to note this usage under --force-reusing-version too
Something like this:
--force-reusing-version
Carry on even though this involves reusing a version
number of a previous push or upload. It is normally
best to give different versions different
numbers. However if --damp-run was used with push on
this version then this option is appropriate to sync the
local version with the dgit server. Some servers
(including, usually, the Debian server) will reject
attempts to reuse or replace already-pushed versions.
(this latter change not in the patch)
-- System Information:
Debian Release: 10.6
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-8-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
--- dgit.1~ 2020-08-19 16:25:45.000000000 +0000
+++ dgit.1 2020-11-06 23:44:48.260816780 +0000
@@ -504,7 +504,9 @@
.BR \-\-damp-run " | " \-L
Go through many more of the motions: do everything that doesn't
involve either signing things, or making changes on the public
-servers.
+servers. Note that when used with push this writes local tags but
+not remote ones, which breaks dgit's assumptions about atomic operations,
+so a subsequent dgit push will need --force-reusing-version to succeed.
.TP
.BI \-k keyid
Use