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