summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
Diffstat (limited to 'Debian')
-rw-r--r--Debian/Dgit.pm25
1 files changed, 24 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index 892ebf9..912a524 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -45,7 +45,8 @@ BEGIN {
dep14_version_mangle
debiantags debiantag_new
debiantag_maintview
- upstreamversion upstream_commitish_search
+ upstreamversion
+ upstream_commitish_search resolve_upstream_version
stripepoch source_file_leafname is_orig_file_of_p_v
server_branch server_ref
stat_exists link_ltarget rename_link_xf
@@ -628,6 +629,28 @@ 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;
+ 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
+}
+
sub is_fast_fwd ($$) {
my ($ancestor,$child) = @_;
my @cmd = (qw(git merge-base), $ancestor, $child);