summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2019-06-15 11:49:17 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2019-06-28 16:59:49 +0100
commit125e2aeb263d8db6efec22935bf1648715c690db (patch)
treec14368f4531a158347fec9032ee1759a69116b45 /dgit
parentbdfe1ad904785df17f77676353ced353d360fc00 (diff)
dgit: Support split view in non-splitting quilt modes
Provide --split-view|brain=auto|always|never and the corresponding access cfg option .split-view. This is not documented or tested yet. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit21
1 files changed, 21 insertions, 0 deletions
diff --git a/dgit b/dgit
index f79e3cf..51bd648 100755
--- a/dgit
+++ b/dgit
@@ -80,6 +80,8 @@ our $rmchanges;
our $overwrite_version; # undef: not specified; '': check changelog
our $quilt_mode;
our $quilt_modes_re = 'linear|smash|auto|nofix|nocheck|gbp|dpm|unapplied';
+our $splitview_mode;
+our $splitview_modes_re = qr{auto|always|never};
our $dodep14tag;
our %internal_object_save;
our $we_are_responder;
@@ -969,8 +971,21 @@ sub notpushing () {
sub determine_whether_split_brain () {
my ($format,) = get_source_format();
+
+ {
+ local $access_forpush;
+ default_from_access_cfg(\$splitview_mode, 'split-view', 'auto',
+ $splitview_modes_re);
+ $do_split_brain = 1 if $splitview_mode eq 'always';
+ }
+
printdebug "format $format, quilt mode $quilt_mode\n";
+
if (madformat_wantfixup($format) && quiltmode_splitting()) {
+ $splitview_mode ne 'never' or
+ fail f_ "dgit: quilt mode \`%s' (for format \`%s')".
+ " implies split view, but split-view set to \`%s'",
+ $quilt_mode, $format, $splitview_mode;
$do_split_brain = 1;
}
$do_split_brain //= 0;
@@ -7324,6 +7339,12 @@ sub parseopts () {
} elsif (m/^--overwrite$/s) {
push @ropts, $_;
$overwrite_version = '';
+ } elsif (m/^--split-(?:view|brain)$/s) {
+ push @ropts, $_;
+ $splitview_mode = 'always';
+ } elsif (m/^--split-(?:view|brain)=($splitview_modes_re)$/s) {
+ push @ropts, $_;
+ $splitview_mode = $1;
} elsif (m/^--overwrite=(.+)$/s) {
push @ropts, $_;
$overwrite_version = $1;