summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rwxr-xr-xgit-debrebase5
-rw-r--r--git-debrebase.1.pod14
-rwxr-xr-xtests/tests/gdr-merge2
-rwxr-xr-xtests/tests/gdr-merge-conflicts2
5 files changed, 21 insertions, 4 deletions
diff --git a/debian/changelog b/debian/changelog
index 98c0383..614a576 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,6 +17,8 @@ dgit (6.7~) unstable; urgency=medium
not in series, because they will be deleted. Closes:#904997.
* changelog: Add close note for #905400 to changelog entry for 6.5.
* git-debrebase: convert-from-gbp: Improve messages. Closes:#906641.
+ * git-debrebase: Highly experimental merge resolution support,
+ enabled only with special command line option.
--
diff --git a/git-debrebase b/git-debrebase
index 36f73d7..706af54 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -50,7 +50,7 @@ usages:
See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).
END
-our ($opt_force, $opt_noop_ok, @opt_anchors);
+our ($opt_force, $opt_noop_ok, $opt_merges, @opt_anchors);
our ($opt_defaultcmd_interactive);
our $us = qw(git-debrebase);
@@ -985,7 +985,7 @@ sub classify ($) {
return $unknown->("octopus merge");
}
- if (!$ENV{GIT_DEBREBASE_EXPERIMENTAL_MERGE}) {
+ if (!$opt_merges) {
return $unknown->("general two-parent merge");
}
@@ -2850,6 +2850,7 @@ getoptions_main
'anchor=s' => \@opt_anchors,
'--dgit=s' => \($dgit[0]),
'force!',
+ 'experimental-merge-resolution!', \$opt_merges,
'-i:s' => sub {
my ($opt,$val) = @_;
badusage "git-debrebase: no cuddling to -i for git-rebase"
diff --git a/git-debrebase.1.pod b/git-debrebase.1.pod
index ca81c19..7ad1ab9 100644
--- a/git-debrebase.1.pod
+++ b/git-debrebase.1.pod
@@ -496,6 +496,20 @@ This is provided mostly for the benefit of the test suite.
Requests (more) debugging. May be repeated.
+=item --experimntal-merge-resolution
+
+Enable experimental code for handling general merges
+(see L<git-debrebase(5)/General merges>).
+
+This option may generate branch structures that
+require the use of this same option by other people.
+Also you may experience lossage of various kinds,
+including false error messages,
+references to nonexistent documentation,
+being handed an incomprehensible pile of
+multidimensional merge wreckage,
+and/or possible mangling of your package's source code.
+
=back
=head1 UNSTITCHING AND LAUNDERING
diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge
index 14a8237..d2df2b8 100755
--- a/tests/tests/gdr-merge
+++ b/tests/tests/gdr-merge
@@ -41,7 +41,7 @@ t-merge-conflicted-stripping-conflict-markers other debian/zorkmid
t-expect-fail E:'general two-parent merge' \
t-git-debrebase
-export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1
+t_gdr_xopts+=' --experimental-merge-resolution'
: ----- expect to be able to merge -----
diff --git a/tests/tests/gdr-merge-conflicts b/tests/tests/gdr-merge-conflicts
index 71be280..660415d 100755
--- a/tests/tests/gdr-merge-conflicts
+++ b/tests/tests/gdr-merge-conflicts
@@ -8,7 +8,7 @@ t-dependencies NO-DGIT GDR
t-tstunt-parsechangelog
t-setup-import gdr-convert-gbp-noarchive
-export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1
+t_gdr_xopts+=' --experimental-merge-resolution'
wreckage-before () {
junkref=refs/debrebase/wreckage/junk