X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=git-debrebase;h=efb0cea4997e102d225aa896fb0ca88b1c0dbcf4;hb=ba8effb1438009fe579ecf5ccb1ffe715c417200;hp=3101ae7d9dcddb39902d3aa6b71d976d694c5c3c;hpb=0eef00174d9c13c2a7b3c72c9515d5fc89a7feba;p=dgit.git diff --git a/git-debrebase b/git-debrebase index 3101ae7d..efb0cea4 100755 --- a/git-debrebase +++ b/git-debrebase @@ -47,7 +47,7 @@ usages: git-debrebase [] prepush [--prose=...] git-debrebase [] quick|conclude git-debrebase [] new-upstream [
] - git-debrebase [] convert-from-gbp [] + git-debrebase [] convert-from-* ... ... See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit). END @@ -2008,6 +2008,7 @@ sub upstream_commitish_search ($$) { sub resolve_upstream_version ($$) { my ($new_upstream, $upstream_version) = @_; + my $used = $new_upstream; if (!defined $new_upstream) { my @tried; $new_upstream = upstream_commitish_search $upstream_version, \@tried; @@ -2018,10 +2019,12 @@ sub resolve_upstream_version ($$) { " Check version, and specify upstream commitish explicitly.", "@tried"; } + $used = $tried[-1]; } $new_upstream = git_rev_parse $new_upstream; - return $new_upstream; + return ($new_upstream, $used); + # used is a human-readable idea of what we found } sub cmd_new_upstream () { @@ -2043,7 +2046,8 @@ sub cmd_new_upstream () { my $new_upstream = shift @ARGV; my $new_upstream_version = upstreamversion $new_version; - $new_upstream = + my $new_upstream_used; + ($new_upstream, $new_upstream_used) = resolve_upstream_version $new_upstream, $new_upstream_version; record_ffq_auto(); @@ -2537,6 +2541,7 @@ sub complete_convert_from ($$$$) { update_head_checkout $old_head, $new_head, $mrest; } +sub cmd_convert_from_unapplied () { cmd_convert_from_gbp(); } sub cmd_convert_from_gbp () { badusage __ "want only 1 optional argument, the upstream git commitish" unless @ARGV<=1; @@ -2548,7 +2553,7 @@ sub cmd_convert_from_gbp () { my ($upstream_spec) = @ARGV; my $upstream_version = upstreamversion $version; - my $upstream = + my ($upstream, $upstream_used) = resolve_upstream_version($upstream_spec, $upstream_version); my ($old_head, $gdrlastinfo) = begin_convert_from(); @@ -2558,7 +2563,7 @@ sub cmd_convert_from_gbp () { runcmd @git, qw(--no-pager diff --stat), $upstream, $old_head, qw( -- :!/debian :/); - fail f_ <1; + fail __ "takes 1 optional argument, the upstream commitish" if @ARGV>1; my @upstreams; @@ -2728,7 +2733,7 @@ sub cmd_convert_from_dgit_view () { my $spec = shift @ARGV; my $commit = git_rev_parse "$spec^{commit}"; push @upstreams, { Commit => $commit, - Source => "$ARGV[0], from command line", + Source => (f_ "%s, from command line", $ARGV[0]), Only => 1, }; } @@ -2741,12 +2746,13 @@ sub cmd_convert_from_dgit_view () { keycommits $head, sub{}, sub{}, $trouble, $trouble; printdebug "troubles=$troubles\n"; if (!$troubles) { - print STDERR <{Version}; - print STDERR "Considering possible commits corresponding to upstream:\n"; + print STDERR __ + "Considering possible commits corresponding to upstream:\n"; if (!@upstreams) { if ($do_tags) { my @tried; my $ups_tag = upstream_commitish_search $version, \@tried; if ($ups_tag) { - my $this = "git tag $tried[-1]"; + my $this = f_ "git tag %s", $tried[-1]; push @upstreams, { Commit => $ups_tag, Source => $this, }; } else { - printf STDERR + print STDERR f_ " git tag: no suitable tag found (tried %s)\n", "@tried"; } @@ -2778,11 +2785,12 @@ END # we do a quick check to see if there are plausible origs my $something=0; if (!opendir BPD, $bpd) { - die "opendir build-products-dir $bpd: $!" unless $!==ENOENT; + die f_ "opendir build-products-dir %s: %s", $bpd, $! + unless $!==ENOENT; } else { while ($!=0, my $f = readdir BPD) { next unless is_orig_file_of_p_v $f, $p, $version; - printf STDERR + print STDERR f_ " orig: found what looks like a .orig, %s\n", "$bpd/$f"; $something=1; @@ -2813,7 +2821,7 @@ END }; } } else { - printf STDERR + print STDERR f_ " orig: no suitable origs found (looked for %s in %s)\n", "${p}_".(stripeoch $version)."...", $bpd; } @@ -2822,7 +2830,8 @@ END my $some_patches = stat_exists 'debian/patches/series'; - print STDERR "Evaluating possible commits corresponding to upstream:\n"; + print STDERR __ + "Evaluating possible commits corresponding to upstream:\n"; my $result; foreach my $u (@upstreams) { @@ -2858,7 +2867,7 @@ END } my $r = system @gbp_cmd; if ($r) { - printf STDERR + print STDERR f_ " %s: couldn't apply patches: gbp pq %s", $u->{Source}, waitstatusmsg(); return; @@ -2867,8 +2876,9 @@ END my $work = git_rev_parse qw(HEAD); my $diffout = cmdoutput @git, qw(diff-tree --stat HEAD), $work; if (length $diffout) { - print STDERR - " $u->{Source}: applying patches gives different tree\n"; + print STDERR f_ + " %s: applying patches gives different tree\n", + $u->{Source}; print STDERR $diffout if $diagnose; return; } @@ -2880,24 +2890,26 @@ END } if (!$result) { - fail <{Source}; + print STDERR f_ "Yes, will base new branch on %s\n", $result->{Source}; complete_convert_from $head, $result->{Result}, $gdrlastinfo, 'convert-from-dgit-view'; } sub cmd_forget_was_ever_debrebase () { - badusage "forget-was-ever-debrebase takes no further arguments" if @ARGV; + badusage __ "forget-was-ever-debrebase takes no further arguments" + if @ARGV; my ($ffqstatus, $ffq_msg, $current, $ffq_prev, $gdrlast) = ffq_prev_branchinfo(); - fail "Not suitable for recording git-debrebaseness anyway: $ffq_msg" + fail f_ "Not suitable for recording git-debrebaseness anyway: %s", + $ffq_msg if defined $ffq_msg; push @deferred_updates, "delete $ffq_prev"; push @deferred_updates, "delete $gdrlast"; @@ -2998,7 +3010,7 @@ setlocale(LC_MESSAGES, ""); textdomain("git-debrebase"); getoptions_main - ("bad options\n", + (__ "bad options\n", "D+" => \$debuglevel, 'noop-ok', => \$opt_noop_ok, 'f=s' => \@snag_force_opts, @@ -3024,8 +3036,7 @@ getoptions_main initdebug('git-debrebase '); enabledebug if $debuglevel; -my $toplevel = cmdoutput @git, qw(rev-parse --show-toplevel); -chdir $toplevel or fail "chdir toplevel $toplevel: $!\n"; +changedir_git_toplevel(); $rd = fresh_playground "$playprefix/misc";