chiark / gitweb /
git-debrebase: merge: Introduce new merge_failed sub
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 11 Aug 2018 17:00:44 +0000 (18:00 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 11 Aug 2018 19:11:08 +0000 (20:11 +0100)
And call it from $nomerge in walk.  Now we produce a sane error
message.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
git-debrebase

index a6a02b113e7d3c9eb21e4a169cdee6f15e9d998e..abf9157e0554fbf7e9496c030af64c9c919fe3cc 100755 (executable)
@@ -368,6 +368,16 @@ sub gbp_pq_export ($$$) {
 #  our own patch identification algorithm?
 #  this is an alternative strategy
 
 #  our own patch identification algorithm?
 #  this is an alternative strategy
 
+sub merge_failed ($$) {
+    my ($wrecknotes, $emsg) = @_;
+    my @m;
+    push @m, "Merge resolution failed: $emsg";
+
+    push @m, "See git-debrebase(1) section FAILED MERGES for suggestions.";
+    # ^ xxx this section does not yet exist
+    fail join '', map { "$_\n" } @m;
+}
+
 sub mwrecknote ($$$) {
     my ($wrecknotes, $reftail, $commitish) = @_;
     confess unless defined $commitish;
 sub mwrecknote ($$$) {
     my ($wrecknotes, $reftail, $commitish) = @_;
     confess unless defined $commitish;
@@ -1046,7 +1056,8 @@ sub walk ($;$$$) {
     };
 
     my $nomerge = sub {
     };
 
     my $nomerge = sub {
-       fail "something useful about failed merge attempt @_ xxx".Dumper($cl);
+       my ($emsg) = @_;
+       merge_failed $cl->{MergeWreckNotes}, $emsg;
     };
 
     my $mwrecknote = sub { &mwrecknote($cl->{MergeWreckNotes}, @_); };
     };
 
     my $mwrecknote = sub { &mwrecknote($cl->{MergeWreckNotes}, @_); };