chiark / gitweb /
dgit: split brain reorg: Rename $made_split_brain
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 7aae321a4c9fa574a1faba50f56cb10816964186..7808fd825c43a836f830c7440bffecb37e85a022 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -175,7 +175,7 @@ our $keyid;
 autoflush STDOUT 1;
 
 our $supplementary_message = '';
-our $split_brain = 0;
+our $made_split_brain = 0;
 our $do_split_brain = 0;
 
 # Interactions between quilt mode and split brain
@@ -4531,7 +4531,7 @@ END
        }
     }
     if ($do_split_brain) {
-       $split_brain = 1;
+       $made_split_brain = 1;
        $dgithead = splitbrain_pseudomerge($clogp,
                                           $actualhead, $dgithead,
                                           $archive_hash);
@@ -4578,7 +4578,8 @@ END
     my $r = system @diffcmd;
     if ($r) {
        if ($r==256) {
-           my $referent = $split_brain ? $dgithead : 'HEAD';
+           confess unless !!$made_split_brain == !!$do_split_brain;
+           my $referent = $made_split_brain ? $dgithead : 'HEAD';
            my $diffs = cmdoutput @git, qw(diff --stat), $tree, $dgithead;
 
            my @mode_changes;
@@ -5836,8 +5837,8 @@ sub build_maybe_quilt_fixup () {
        # remain dgit-view, rather than master, so subsequent calls to
        #  unpack_playtree_need_cd_work
        # will DTRT, resetting dgit-view.
-       die if $split_brain;
-       $split_brain = 1;
+       die if $made_split_brain;
+       $made_split_brain = 1;
     }
     chdir '..';
 
@@ -6063,7 +6064,7 @@ sub quilt_check_splitbrain_cache ($$) {
        if ($cachehit ne $headref) {
            progress f_ "dgit view: found cached (%s)", $saved;
            runcmd @git, qw(checkout -q -b dgit-view), $cachehit;
-           $split_brain = 1;
+           $made_split_brain = 1;
            return ($cachehit, $splitbrain_cachekey);
        }
        progress __ "dgit view: found cached, no changes required";
@@ -6437,10 +6438,12 @@ sub build_or_push_prep_early () {
 
 sub build_or_push_prep_modes () {
     my ($format,) = get_source_format();
-    printdebug "format $format\n";
+    printdebug "format $format, quilt mode $quilt_mode\n";
     if (madformat_wantfixup($format) && quiltmode_splitbrain()) {
        $do_split_brain = 1;
     }
+    fail __ "dgit: --include-dirty is not supported in split view quilt mode"
+       if $do_split_brain && $includedirty;
 }
 
 sub build_prep_early () {
@@ -6757,7 +6760,7 @@ sub building_source_in_playtree {
     #
     # Note that if we are building a source package in split brain
     # mode we do not support including uncommitted changes, because
-    # that makes quilt fixup too hard.  I.e. ($split_brain && (dgit is
+    # that makes quilt fixup too hard.  I.e. ($made_split_brain && (dgit is
     # building a source package)) => !$includedirty
     return !$includedirty;
 }
@@ -6776,9 +6779,10 @@ sub build_source {
         # If we are in split brain, there is already a playtree with
         # the thing we should package into a .dsc (thanks to quilt
         # fixup).  If not, make a playtree
-        prep_ud() unless $split_brain;
+       confess unless !!$made_split_brain == !!$do_split_brain;
+        prep_ud() unless $made_split_brain;
         changedir $playground;
-        unless ($split_brain) {
+        unless ($made_split_brain) {
             my $upstreamversion = upstreamversion $version;
             unpack_playtree_linkorigs($upstreamversion, sub { });
             unpack_playtree_need_cd_work($headref);
@@ -7578,11 +7582,6 @@ sub parseopts_late_defaults () {
        $$vr = $v;
     }
 
-    fail __ "dgit: --include-dirty is not supported in split view quilt mode"
-       # xxx this does not actually work, because $split brain is
-       #     not set this early
-       if $split_brain && $includedirty;
-
     if (!defined $cleanmode) {
        local $access_forpush;
        $cleanmode = access_cfg('clean-mode-newer', 'RETURN-UNDEF');