summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-04-22 22:28:49 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-06-16 22:40:13 +0100
commit8b875c05ff728c9335f692ccc21c5abfe2203d26 (patch)
treefc7903a6a1cfbadc91974747a9c43096e8ab6f06
parentbdeb85eacfd821cad3e1be0bc844dff5671389b7 (diff)
git-debrebase: Provide and test "conclude"
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xgit-debrebase13
-rw-r--r--git-debrebase.1.pod11
-rwxr-xr-xtests/tests/gdr-subcommands4
3 files changed, 26 insertions, 2 deletions
diff --git a/git-debrebase b/git-debrebase
index 00d2f57..636ff76 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -1325,6 +1325,19 @@ sub cmd_quick () {
do_stitch 'quick';
}
+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';
+}
+
sub cmd_convert_from_gbp () {
badusage "needs 1 optional argument, the upstream git rev"
unless @ARGV<=1;
diff --git a/git-debrebase.1.pod b/git-debrebase.1.pod
index 68447b9..3e4c698 100644
--- a/git-debrebase.1.pod
+++ b/git-debrebase.1.pod
@@ -55,6 +55,17 @@ The options for git-rebase must either start with C<-i>,
or be prececded by C<-->,
to distinguish them from options for git-debrebase.
+=item git-debrebase conclude
+
+Finishes a git-debrebase session,
+tidying up the branch and making it fast forward again.
+
+Specifically: if the branch is unstitched,
+launders and restitches it,
+making a new pseudomerge.
+Otherwise, it is an error,
+unless --noop-ok.
+
=item git-debrebase quick
Unconditionally launders and restitches the branch,
diff --git a/tests/tests/gdr-subcommands b/tests/tests/gdr-subcommands
index 6232112..f6d817d 100755
--- a/tests/tests/gdr-subcommands
+++ b/tests/tests/gdr-subcommands
@@ -148,7 +148,7 @@ make_check () {
esac
}
-Ec="F:xxxdunno"
+Ec="F:No ongoing git-debrebase session"
# input state:
# stitched? st'd st'd unst'd unst'd
@@ -162,7 +162,7 @@ subcmd '' Ult Ull Vlt Vl
subcmd stitch Ns Nu Sltf Stf
#subcmd pre-push Ns Nu Sltf Stf
subcmd quick ns Sl Sltf Sl
-#subcmd conclude "$Ec" "$Ec" Sltf Sl
+subcmd conclude "$Ec" "$Ec" Sltf Sl
#subcmd make-patches sPft sPft uPft uPft
#subcmd dgit-upload-hook Psft Psft SPft SPft
#