+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;
+ if (!length $new_upstream) {
+ fail f_
+ "Could not determine appropriate upstream commitish.\n".
+ " (Tried these tags: %s)\n".
+ " Check version, and specify upstream commitish explicitly.",
+ "@tried";
+ }
+ $used = $tried[-1];
+ }
+ $new_upstream = git_rev_parse $new_upstream;
+
+ return ($new_upstream, $used);
+ # used is a human-readable idea of what we found
+}
+