X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit;h=1a2ee88feabca1487696f6abf7d3a406329de9b0;hp=47c55f3905217dd0b25eb0490608889132ca6c22;hb=236b11e106008dcf767ede43a5926d9b985f59e7;hpb=ea3d6683dcb55e588833e59af9f740709cd709b5 diff --git a/dgit b/dgit index 47c55f39..1a2ee88f 100755 --- a/dgit +++ b/dgit @@ -2639,6 +2639,12 @@ sub clean_tree () { runcmd_ordryrun_local @git, qw(clean -xdf); } elsif ($cleanmode eq 'git-ff') { runcmd_ordryrun_local @git, qw(clean -xdff); + } elsif ($cleanmode eq 'check') { + my $leftovers = cmdoutput @git, qw(clean -xdn); + if (length $leftovers) { + print STDERR $leftovers, "\n" or die $!; + fail "tree contains uncommitted files and --clean=check specified"; + } } elsif ($cleanmode eq 'none') { } else { die "$cleanmode ?"; @@ -2878,7 +2884,7 @@ sub parseopts () { } elsif (m/^--build-products-dir=(.*)/s) { push @ropts, $_; $buildproductsdir = $1; - } elsif (m/^--clean=(dpkg-source(?:-d)?|git|git-ff|none)$/s) { + } elsif (m/^--clean=(dpkg-source(?:-d)?|git|git-ff|check|none)$/s) { push @ropts, $_; $cleanmode = $1; } elsif (m/^--clean=(.*)$/s) { @@ -2959,6 +2965,9 @@ sub parseopts () { } elsif (s/^-wdd$//s) { push @ropts, $&; $cleanmode = 'dpkg-source-d'; + } elsif (s/^-wc$//s) { + push @ropts, $&; + $cleanmode = 'check'; } else { badusage "unknown short option \`$_'"; }