chiark / gitweb /
git-debrebase: merge: Introduce global mwrecknote sub
[dgit.git] / git-debrebase
index 7c69c4c0b2b970eeeee8eb09edae9488dbc3a6bc..277e0f843aac6641172abccc48beaefd781cb5f4 100755 (executable)
@@ -362,6 +362,11 @@ sub gbp_pq_export ($$$) {
 #  our own patch identification algorithm?
 #  this is an alternative strategy
 
+sub mwrecknote ($$$) {
+    my ($wrecknotes, $reftail, $commitish) = @_;
+    $wrecknotes->{$reftail} = $commitish;
+}
+
 sub merge_series ($$$;@) {
     my ($newbase, $wrecknotes, $base_q, @input_qs) = @_;
     # $base_q{SeriesBase}  $input_qs[]{SeriesBase}
@@ -388,10 +393,7 @@ sub merge_series ($$$;@) {
 
     my $result;
 
-    my $mwrecknote = sub {
-       my ($reftail, $commitish) = @_;
-       $wrecknotes->{$reftail} = $commitish;
-    };
+    my $mwrecknote = sub { &mwrecknote($wrecknotes, @_); };
 
     local $workarea = fresh_playground "$playprefix/merge";
     my $seriesfile = "debian/patches/series";
@@ -423,7 +425,7 @@ sub merge_series ($$$;@) {
                 " $q->{SeriesTip}]"
             ];
            printdebug "merge_series  pec $pec ";
-           runcmd @git, qw(rm -q --cached), $seriesfile;
+           runcmd @git, qw(rm -q --ignore-unmatch --cached), $seriesfile;
            $pec = make_commit [ $pec ], [
                 "Drop series file from $s to avoid merge trouble",
                 "[git-debrebase merge-innards patch-queue prep:".
@@ -1039,10 +1041,7 @@ sub walk ($;$$$) {
        fail "something useful about failed merge attempt @_ xxx".Dumper($cl);
     };
 
-    my $mwrecknote = sub {
-       my ($reftail, $commitish) = @_;
-       $cl->{MergeWreckNotes}{$reftail} = $commitish;
-    };
+    my $mwrecknote = sub { &mwrecknote($cl->{MergeWreckNotes}, @_); };
 
     my $last_anchor;