finish 8;
}
-sub getoptions {
+sub getoptions_main {
my $m = shift;
local $SIG{__WARN__}; # GetOptions calls `warn' to print messages
GetOptions @_ or badusage $m;
}
+sub getoptions {
+ my $sc = shift;
+ getoptions_main "bad options follow \`git-debrebase $sc'", @_;
+}
sub cfg ($;$) {
my ($k, $optional) = @_;
stitch($dangling_head, $ffq_prev, $gdrlast, $ffq_prev_commitish, $prose);
}
-sub resolve_upstream_version ($$) {
- my ($new_upstream, $version) = @_;
+sub upstream_commitish_search ($$) {
+ my ($upstream_version, $tried) = @_;
+ # todo: at some point maybe use git-deborig to do this
+ foreach my $tagpfx ('', 'v', 'upstream/') {
+ my $tag = $tagpfx.(dep14_version_mangle $upstream_version);
+ my $new_upstream = git_get_ref "refs/tags/$tag";
+ return $new_upstream if length $new_upstream;
+ push @$tried, $tag;
+ }
+}
- my $new_upstream_version = "$version";
- $new_upstream_version =~ s/-.*?$//;;
+sub resolve_upstream_version ($$) {
+ my ($new_upstream, $upstream_version) = @_;
if (!defined $new_upstream) {
my @tried;
- # todo: at some point maybe use git-deborig to do this
- foreach my $tagpfx ('', 'v', 'upstream/') {
- my $tag = $tagpfx.(dep14_version_mangle $new_upstream_version);
- $new_upstream = git_get_ref "refs/tags/$tag";
- last if length $new_upstream;
- push @tried, $tag;
- }
+ $new_upstream = upstream_commitish_search $upstream_version, \@tried;
if (!length $new_upstream) {
fail "Could not determine appropriate upstream commitish.\n".
" (Tried these tags: @tried)\n".
}
$new_upstream = git_rev_parse $new_upstream;
- return ($new_upstream, $new_upstream_version);
+ return $new_upstream;
}
sub cmd_new_upstream () {
}
my $new_upstream = shift @ARGV;
- my $new_upstream_version;
- ($new_upstream, $new_upstream_version) =
- resolve_upstream_version $new_upstream, $new_version;
+ my $new_upstream_version = upstreamversion $new_version;
+ $new_upstream =
+ resolve_upstream_version $new_upstream, $new_upstream_version;
record_ffq_auto();
sub cmd_stitch () {
my $prose = 'stitch';
- getoptions("bad options follow \`git-debrebase stitch'",
+ getoptions("stitch",
'prose=s', \$prose);
badusage "no arguments allowed" if @ARGV;
do_stitch $prose, 0;
sub cmd_make_patches () {
my $opt_quiet_would_amend;
- getoptions("bad options follow \`git-debrebase make-patches'",
+ getoptions("make-patches",
'quiet-would-amend!', \$opt_quiet_would_amend);
badusage "no arguments allowed" if @ARGV;
my $old_head = get_head();
my ($upstream_spec) = @ARGV;
- my ($upstream, $upstream_version) =
- resolve_upstream_version($upstream_spec, $version);
+ my $upstream_version = upstreamversion $version;
+ my $upstream =
+ resolve_upstream_version($upstream_spec, $upstream_version);
my $old_head = get_head();
}
}
-getoptions("bad options\n",
+getoptions_main
+ ("bad options\n",
"D+" => \$debuglevel,
'noop-ok', => \$opt_noop_ok,
'f=s' => \@snag_force_opts,