chiark / gitweb /
git-debrebase: Merges: Enable with command-line option instead of env var
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 19 Aug 2018 19:44:29 +0000 (20:44 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 19 Aug 2018 20:14:39 +0000 (21:14 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
debian/changelog
git-debrebase
git-debrebase.1.pod
tests/tests/gdr-merge
tests/tests/gdr-merge-conflicts

index 98c0383..614a576 100644 (file)
@@ -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.
 
  --
 
index 36f73d7..706af54 100755 (executable)
@@ -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"
index ca81c19..7ad1ab9 100644 (file)
@@ -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
index 14a8237..d2df2b8 100755 (executable)
@@ -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 -----
 
index 71be280..660415d 100755 (executable)
@@ -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