summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-01-31 16:34:06 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-06-16 12:25:49 +0100
commitd70807ddc00b2d3313076fe81264db36a6c00260 (patch)
treebeee1328bc06c78f0705d79ce761f1a550ef7dd4
parent5e05a8f7605034ee94826bd72688f544c965f74c (diff)
git-debrebase: new-upstream-v0: support passing git-rebase options
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xgit-debrebase15
1 files changed, 9 insertions, 6 deletions
diff --git a/git-debrebase b/git-debrebase
index 8695882..b3a78ae 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -21,6 +21,7 @@
# git-debrebase new-upstreams-v0 \
# NEW-VERSION ORIG-COMMITISH
# [EXTRA-ORIG-NAME EXTRA-ORIG-COMMITISH ...]
+# [<git-rebase options>]
# usages:
# git-debrebase status
@@ -816,16 +817,14 @@ sub cmd_analyse () {
}
sub cmd_new_upstream_v0 () {
- # xxx would like to support more git-rebase options
- badusage
- "need NEW-VERSION UPS-COMMITISH [EXTRA-UPS-NAME EXTRA-UPS-COMMITISH...]"
- unless @ARGV % 2 == 0 and @ARGV >= 2;
# tree should be clean and this is not checked
# automatically and unconditionally launders before rebasing
# if rebase --abort is used, laundering has still been done
my %pieces;
+ badusage "need NEW-VERSION UPS-COMMITTISH" unless @ARGV >= 2;
+
# parse args - low commitment
my $new_version = (new Dpkg::Version scalar(shift @ARGV), check => 1);
my $new_upstream_version = $new_version->version();
@@ -853,8 +852,12 @@ sub cmd_new_upstream_v0 () {
OldIx => 0,
New => $new_upstream,
);
- while (@ARGV) {
+ while (@ARGV && $ARGV[0] !~ m{^-}) {
my $n = shift @ARGV;
+
+ badusage "for each EXTRA-UPS-NAME need EXTRA-UPS-COMMITISH"
+ unless @ARGV && $ARGV[0] !~ m{^-};
+
my $c = git_rev_parse shift @ARGV;
die unless $n =~ m/^$extra_orig_namepart_re$/;
$newpiece->($n, New => $c);
@@ -1000,7 +1003,7 @@ END
update_head_postlaunder $old_head, $old_laundered_tip,
'launder for new upstream';
- my @cmd = (@git, qw(rebase --onto), $new_bw, $old_bw);
+ my @cmd = (@git, qw(rebase --onto), $new_bw, $old_bw, @ARGV);
runcmd @cmd;
# now it's for the user to sort out
}