chiark / gitweb /
git-debrebase: merge: Do wreckage cleaning separately
[dgit.git] / git-debrebase
index 7f96749626f94cd7e0848eb9b75aa8613a3c3b9c..25ebbe6f0ad84448ca44a1b78167f0c0c0ac535a 100755 (executable)
@@ -128,8 +128,10 @@ sub in_workarea ($) {
     die $@ if $@;
 }
 
-sub fresh_workarea () {
-    $workarea = fresh_playground "$playprefix/work";
+sub fresh_workarea (;$) {
+    my ($subdir) = @_;
+    $subdir //= 'work';
+    $workarea = fresh_playground "$playprefix/$subdir";
     in_workarea sub { playtree_setup };
 }
 
@@ -389,6 +391,9 @@ sub merge_failed ($$;@) {
 
     my @updates;
     merge_wreckage_cleaning \@updates;
+    run_ref_updates_now "merge failed", \@updates;
+
+    @updates = ();
     keys %$wrecknotes;
     while (my ($k,$v) = each %$wrecknotes) {
        push @updates, "create $wrecknoteprefix/$k $v";
@@ -450,7 +455,8 @@ sub merge_series ($$$;@) {
        }
     };
 
-    local $workarea = fresh_playground "$playprefix/merge";
+    local $workarea;
+    fresh_workarea "merge";
     my $seriesfile = "debian/patches/series";
     in_workarea sub {
        playtree_setup();