summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-01-31 16:41:20 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-06-16 12:25:49 +0100
commit4f5ea68c4b64ec065e40240e9f0df6ed4279593d (patch)
treeb1ad86f2c199f96389f2a79be27782c5b195ea0f
parent56e6081eca79352f4a79198dbaff40c8611db05f (diff)
git-debrebase: provide default rebase action
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xgit-debrebase24
1 files changed, 18 insertions, 6 deletions
diff --git a/git-debrebase b/git-debrebase
index 2fa4947..0e2e0b7 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -805,6 +805,14 @@ sub cmd_launder () {
printf "# last upstream merge\n%s\n", $last_upstream_merge;
}
+sub defaultcmd_rebase () {
+ my $old = get_head();
+ my ($tip,$breakwater) = walk $old;
+ update_head_postlaunder $old, $tip, 'launder for rebase';
+ @ARGV = qw(-i) unless @ARGV; # make configurable
+ runcmd @git, qw(rebase), @ARGV, $breakwater;
+}
+
sub cmd_analyse () {
die if ($ARGV[0]//'') =~ m/^-/;
badusage "too many arguments to analyse" if @ARGV>1;
@@ -1069,10 +1077,14 @@ chdir $toplevel or die "chdir $toplevel: $!";
$rd = fresh_playground "$playprefix/misc";
-my $cmd = shift @ARGV;
-my $cmdfn = $cmd;
-$cmdfn =~ y/-/_/;
-$cmdfn = ${*::}{"cmd_$cmdfn"};
+if (!@ARGV || $ARGV[0] =~ m{^-}) {
+ defaultcmd_rebase();
+} else {
+ my $cmd = shift @ARGV;
+ my $cmdfn = $cmd;
+ $cmdfn =~ y/-/_/;
+ $cmdfn = ${*::}{"cmd_$cmdfn"};
-$cmdfn or badusage "unknown git-debrebase sub-operation $cmd";
-$cmdfn->();
+ $cmdfn or badusage "unknown git-debrebase sub-operation $cmd";
+ $cmdfn->();
+}