chiark / gitweb /
dgit: Reorganise cleaning in build_prep
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Oct 2018 10:04:48 +0000 (11:04 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Oct 2018 10:33:16 +0000 (11:33 +0100)
1. Replace the open-coded $includedirty with the equivalent
building_source_in_playtree(), because the latter is what we actually
care about here.

2. Reformat into if blocks.

3. Introuce and call clean_tree_check (currently a no-op).  Now,
writing clean_tree_check will be part of fixing #910705.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
dgit

diff --git a/dgit b/dgit
index 8c7f288..a443e5d 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -6230,6 +6230,10 @@ sub clean_tree () {
     }
 }
 
+sub clean_tree_check () {
+    # Not yet implemented.  The lack of this is part of #910705.
+}
+
 sub cmd_clean () {
     badusage __ "clean takes no additional arguments" if @ARGV;
     notpushing();
@@ -6262,9 +6266,18 @@ sub build_prep_early () {
 sub build_prep ($) {
     my ($wantsrc) = @_;
     build_prep_early();
-    # clean the tree if we're trying to include dirty changes in the
-    # source package, or we are running the builder in $maindir
-    clean_tree() if $includedirty || ($wantsrc & WANTSRC_BUILDER);
+    if (!building_source_in_playtree() || ($wantsrc & WANTSRC_BUILDER)) {
+       # Clean the tree because we're going to use the contents of
+       # $maindir.  (We trying to include dirty changes in the source
+       # package, or we are running the builder in $maindir.)
+       clean_tree();
+    } else {
+       # We don't actually need to do anything in $maindir, but we
+       # should do some kind of cleanliness check because (i) the
+       # user may have forgotten a `git add', and (ii) if the user
+       # said -wc we should still do the check.
+       clean_tree_check();
+    }
     build_maybe_quilt_fixup();
     if ($rmchanges) {
        my $pat = changespat $version;