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;
" 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 () {
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();
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;
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();
runcmd @git, qw(--no-pager diff --stat),
$upstream, $old_head,
qw( -- :!/debian :/);
- fail f_ <<END, $upstream_spec, $upstream_spec;
+ fail f_ <<END, $upstream_used, $upstream;
upstream (%s) and HEAD are not
identical in upstream files. See diffstat above, or run
git diff %s HEAD -- :!/debian :/
if (length $wrong) {
snag 'unexpected-upstream-changes', f_
"history between upstream (%s) and HEAD contains direct changes to upstream files - are you sure this is a gbp (patches-unapplied) branch?",
- $upstream;
+ $upstream_used;
print STDERR f_ "list expected changes with: %s\n",
- "git log --stat --ancestry-path $upstream_spec..HEAD -- :/ ':!/debian'";
+ "git log --stat --ancestry-path $upstream..HEAD -- :/ ':!/debian'";
}
}