diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-06-21 01:00:41 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-06-21 01:11:11 +0100 |
commit | 1967603885cd0fe76230fdfa9c026238da6c12a9 (patch) | |
tree | e54fa0b263aa27386033012b7070ff5569c94fcc | |
parent | a57e3b1aaf62ca5d28b4e65fdaf46340067b5748 (diff) |
dgit: Non-noop git fetch is not available with --dry-run, so fail
When fetch or push wants git fetch (other than in a situation where it
happes to be a noop) but --dry-run was specified, we would loop with a
false coplaint about git fetch. False, because we didn't actually run
git fetch so of course it didn't do anything.
Instead, fail with an explanation. Closes:#871317.
This does not occur, and we do not fail, if git-fetch would be a
no-op. We can tell when this is the case, because we use
git-ls-remote too. This leads to one suggestion for a workaround for
the user, which is to do a not --dry-run fetch first.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r-- | debian/changelog | 4 | ||||
-rwxr-xr-x | dgit | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 3216e4a..2c30556 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,10 @@ dgit (5.2~) unstable; urgency=medium Closes:#883340. * When quilt fixup fails because of discrepancies, print a git diff rune which will show them. Closes:#865446. + * When fetch or push wants git fetch (other than in a situation where it + happes to be a noop) but --dry-run was specified, fail with an + explanation, rather than looping with a false coplaint about git + fetch. Closes:#871317. -- @@ -2757,6 +2757,11 @@ END my $want = $wantr{$rrefname}; next if $got eq $want; if (!defined $objgot{$want}) { + fail <<END unless act_local(); +--dry-run specified but we actually wanted the results of git fetch, +so this is not going to work. Try running dgit fetch first, +or using --damp-run instead of --dry-run. +END print STDERR <<END; warning: git ls-remote suggests we want $lrefname warning: and it should refer to $want |