chiark / gitweb /
dgit: Break out determine_whether_split_brain
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 35b61a5e0006e414c7e309cbd173f1b469f427f5..d09ae5f4cac57ca520f839d1c5fd2272912afe02 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -173,7 +173,7 @@ autoflush STDOUT 1;
 
 our $supplementary_message = '';
 our $made_split_brain = 0;
-our $do_split_brain = 0;
+our $do_split_brain;
 
 # Interactions between quilt mode and split brain
 # (currently, split brain only implemented iff
@@ -295,7 +295,7 @@ sub quiltmode_splitbrain () {
     $quilt_mode =~ m/gbp|dpm|unapplied/;
 }
 
-sub do_split_brain () { $do_split_brain // confess }
+sub do_split_brain () { !!($do_split_brain // confess) }
 
 sub opts_opt_multi_cmd {
     my $extra = shift;
@@ -4506,7 +4506,7 @@ END
        }
     }
 
-    confess unless !!$made_split_brain == !!do_split_brain();
+    confess unless !!$made_split_brain == do_split_brain();
 
     changedir $playground;
     progress f_ "checking that %s corresponds to HEAD", $dscfn;
@@ -6210,7 +6210,7 @@ END
 
     progress f_ "starting quiltify (multiple patches, %s mode)", $quilt_mode;
     quiltify($clogp,$headref,$oldtiptree,\@failsuggestion);
-    runcmd @git, qw(checkout -q), (qw(master dgit-view)[!!do_split_brain()]);
+    runcmd @git, qw(checkout -q), (qw(master dgit-view)[do_split_brain()]);
 
     if (!open P, '>>', ".pc/applied-patches") {
        $!==&ENOENT or confess "$!";
@@ -6360,12 +6360,18 @@ sub build_or_push_prep_early () {
     $dscfn = dscfn($version);
 }
 
-sub build_or_push_prep_modes () {
+sub determine_whether_split_brain () {
     my ($format,) = get_source_format();
     printdebug "format $format, quilt mode $quilt_mode\n";
     if (madformat_wantfixup($format) && quiltmode_splitbrain()) {
        $do_split_brain = 1;
     }
+    $do_split_brain //= 0;
+}
+
+sub build_or_push_prep_modes () {
+    determine_whether_split_brain();
+
     fail __ "dgit: --include-dirty is not supported in split view quilt mode"
        if do_split_brain() && $includedirty;
 }
@@ -6695,7 +6701,7 @@ sub build_source {
        unlink "$buildproductsdir/$sourcechanges" or $!==ENOENT
            or fail f_ "remove %s: %s", $sourcechanges, $!;
     }
-#    confess unless !!$made_split_brain == !!do_split_brain();
+#    confess unless !!$made_split_brain == do_split_brain();
 
     my @cmd = (@dpkgsource, qw(-b --));
     my $leafdir;