chiark / gitweb /
git-debrebase: Do not mind stitching an unlaundered branch
[dgit.git] / git-debrebase
index 00d2f575a6d29361fdc7ddf397f0e1a9be7348db..c02fe8a27e2c25d8c573ce88b7ddda8ca3828cb4 100755 (executable)
@@ -1083,8 +1083,8 @@ sub stitch ($$$$$) {
     update_head $old_head, $new_head, "stitch: $prose";
 }
 
-sub do_stitch ($) {
-    my ($prose) = @_;
+sub do_stitch ($;$) {
+    my ($prose, $unclean) = @_;
 
     my ($ffq_prev, $gdrlast, $ffq_prev_commitish) = ffq_prev_info();
     if (!$ffq_prev_commitish) {
@@ -1093,7 +1093,7 @@ sub do_stitch ($) {
     }
     my $dangling_head = get_head();
 
-    keycommits $dangling_head, \&snag, \&snag, \&snag;
+    keycommits $dangling_head, $unclean,$unclean,$unclean;
 
     stitch($dangling_head, $ffq_prev, $gdrlast, $ffq_prev_commitish, $prose);
 }
@@ -1316,13 +1316,27 @@ sub cmd_stitch () {
     my $prose = 'stitch';
     GetOptions('prose=s', \$prose) or die badusage("bad options to stitch");
     badusage "no arguments allowed" if @ARGV;
-    do_stitch($prose);
+    do_stitch $prose, 0;
 }
+sub cmd_prepush () { cmd_stitch(); }
 
 sub cmd_quick () {
     badusage "no arguments allowed" if @ARGV;
     do_launder_head 'launder for git-debrebase quick';
-    do_stitch 'quick';
+    do_stitch 'quick', \&snag;
+}
+
+sub cmd_conclude () {
+    my ($ffq_prev, $gdrlast, $ffq_prev_commitish) = ffq_prev_info();
+    if (!$ffq_prev_commitish) {
+       fail "No ongoing git-debrebase session." unless $opt_noop_ok;
+       return;
+    }
+    my $dangling_head = get_head();
+    
+    badusage "no arguments allowed" if @ARGV;
+    do_launder_head 'launder for git-debrebase quick';
+    do_stitch 'quick', \&snag;
 }
 
 sub cmd_convert_from_gbp () {