#----- other building -----
-sub clean_tree_check_git ($$) {
- my ($honour_ignores, $message) = @_;
+sub clean_tree_check_git ($$$) {
+ my ($honour_ignores, $message, $ignmessage) = @_;
my @cmd = (@git, qw(clean -dn));
push @cmd, qw(-x) unless $honour_ignores;
my $leftovers = cmdoutput @cmd;
if (length $leftovers) {
print STDERR $leftovers, "\n" or confess $!;
+ $message .= $ignmessage if $honour_ignores;
fail $message;
}
}
return if $cleanmode =~ m{no-check};
return if $patches_applied_dirtily; # yuk
clean_tree_check_git +($cleanmode !~ m{all-check}),
- (f_ <<END, $message);
-%s
+ $message, "\n".__ <<END;
If this is just missing .gitignore entries, use a different clean
mode, eg --clean=dpkg-source,no-check (-wdn/-wddn) to ignore them
or --clean=git (-wg/-wgf) to use \`git clean' instead.
# the rules clean target which might modify tracked files (!)
if ($cleanmode =~ m{^check}) {
clean_tree_check_git +($cleanmode =~ m{ignores}), __
- "tree contains uncommitted files and --clean=check specified";
+ "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)";
} elsif ($cleanmode =~ m{^git}) {
- clean_tree_check_git_wd __
- "tree contains uncommitted files";
+ clean_tree_check_git 1, __
+ "tree contains uncommited, untracked, unignored files", '';
} elsif ($cleanmode eq 'none') {
} else {
confess "$cleanmode ?";