diff options
Diffstat (limited to 'git-debrebase')
-rwxr-xr-x | git-debrebase | 24 |
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->(); +} |