summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit23
1 files changed, 21 insertions, 2 deletions
diff --git a/dgit b/dgit
index 57e1e40..654b3d1 100755
--- a/dgit
+++ b/dgit
@@ -101,7 +101,7 @@ our %forceopts = map { $_=>0 }
our %format_ok = map { $_=>1 } ("1.0","3.0 (native)","3.0 (quilt)");
our $suite_re = '[-+.0-9a-z]+';
-our $cleanmode_re = qr{(?: dpkg-source (?: -d )?
+our $cleanmode_re = qr{(?: dpkg-source (?: -d )? (?: ,no-check )?
| git | git-ff
| check (?: ,ignores )?
| none
@@ -6214,6 +6214,19 @@ sub clean_tree_check_git ($$) {
}
}
+sub clean_tree_check_git_wd ($) {
+ my ($message) = @_;
+ return if $cleanmode =~ m{no-check};
+ return if $patches_applied_dirtily; # yuk
+ clean_tree_check_git 1,
+ (f_ <<END, $message);
+%s
+If this is just missing .gitignore entries, use a different clean
+mode, eg --clean=dpkg-source,no-check (-wdu/-wddu) to ignore them
+or --clean=git (-wg/-wgf) to use \`git clean' instead.
+END
+}
+
sub clean_tree_check () {
# Not yet fully implemented.
# This function needs to not care about modified but tracked files.
@@ -6222,6 +6235,9 @@ sub clean_tree_check () {
if ($cleanmode =~ m{^check}) {
clean_tree_check_git +($cleanmode =~ m{ignores}), __
"tree contains uncommitted files and --clean=check specified";
+ } elsif ($cleanmode =~ m{^dpkg-source}) {
+ clean_tree_check_git_wd __
+ "tree contains uncommitted files (NB dgit didn't run rules clean)";
}
}
@@ -6234,6 +6250,8 @@ sub clean_tree () {
push @cmd, qw(-T clean);
maybe_apply_patches_dirtily();
runcmd_ordryrun_local @cmd;
+ clean_tree_check_git_wd __
+ "tree contains uncommitted files (after running rules clean)";
} elsif ($cleanmode eq 'git') {
runcmd_ordryrun_local @git, qw(clean -xdf);
} elsif ($cleanmode eq 'git-ff') {
@@ -7262,10 +7280,11 @@ sub parseopts () {
} elsif (s/^-wgf$//s) {
push @ropts, $&;
$cleanmode = 'git-ff';
- } elsif (s/^-wd(d?)$//s) {
+ } elsif (s/^-wd(d?)([n]?)$//s) {
push @ropts, $&;
$cleanmode = 'dpkg-source';
$cleanmode .= '-d' if $1;
+ $cleanmode .= ',no-check' if $2 eq 'n';
} elsif (s/^-wc$//s) {
push @ropts, $&;
$cleanmode = 'check';