X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=git-debrebase;h=5fcec5461a2e51143de9818b50ad09aa6e0516db;hb=2b440473af773ab13334f8b79537c7a3153e4e4f;hp=592dd292f4fe7ecdfa77a5b53a5b1dbbc50fa1e1;hpb=a865af47e6e6dc6160812fa0cdfbcb4d57f38723;p=dgit.git diff --git a/git-debrebase b/git-debrebase index 592dd292..5fcec546 100755 --- a/git-debrebase +++ b/git-debrebase @@ -29,6 +29,7 @@ # git-debrebase [ --] [] # git-debrebase [] analyse # git-debrebase [] launder # prints breakwater tip etc. +# git-debrebase [] stitch [--prose=] # git-debrebase [] downstream-rebase-launder-v0 # experimental # # git-debrebase [] gbp2debrebase-v0 \ @@ -832,6 +833,12 @@ sub cmd_launder () { sub defaultcmd_rebase () { my $old = get_head(); + my ($status, $message) = record_ffq_prev(); + if ($status eq 'written' || $status eq 'exists') { + } else { + fproblem $status, "could not record ffq-prev: $message"; + fproblems_maybe_bail(); + } my ($tip,$breakwater) = walk $old; update_head_postlaunder $old, $tip, 'launder for rebase'; runcmd @git, qw(rebase), @ARGV, $breakwater; @@ -1130,6 +1137,30 @@ sub cmd_record_ffq_prev () { } } +sub cmd_stitch () { + my $prose = ''; + GetOptions('prose=s', \$prose) or die badusage("bad options to stitch"); + badusage "no arguments allowed" if @ARGV; + my ($status, $message, $current, $ffq_prev) = ffq_prev_branchinfo(); + if ($status ne 'branch') { + fproblem $status, "could not check ffq-prev: $message"; + fproblems_maybe_bail(); + } + my $prev = $ffq_prev && git_get_ref $ffq_prev; + if (!$prev) { + fail "No ffq-prev to stitch." unless $opt_noop_ok; + } + $prose = ", $prose" if length $prose; + runcmd @git, qw(merge -s ours --no-edit -m), <