sub clean_tree_check () {
# Not yet fully implemented.
- if ($cleanmode eq 'check') {
- my $leftovers = cmdoutput @git, qw(clean -xdn);
+ # This function needs to not care about modified but tracked files.
+ # That was done by check_not_dirty, and by now we may have run
+ # the rules clean target which might modify tracked files (!)
+ if ($cleanmode =~ m{^check}) {
+ my @cmd = (@git, qw(clean -dn));
+ push @cmd, qw(-x);
+ my $leftovers = cmdoutput @cmd;
if (length $leftovers) {
print STDERR $leftovers, "\n" or confess $!;
fail __
runcmd_ordryrun_local @git, qw(clean -xdf);
} elsif ($cleanmode eq 'git-ff') {
runcmd_ordryrun_local @git, qw(clean -xdff);
- } elsif ($cleanmode eq 'check') {
+ } elsif ($cleanmode =~ m{^check}) {
clean_tree_check();
} elsif ($cleanmode eq 'none') {
} else {