summaryrefslogtreecommitdiff
path: root/Debian/Dgit.pm
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2019-06-28 17:30:55 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2019-06-29 00:43:18 +0100
commitcd800af2e4ca8fcf72e17555472af9aa37000b3e (patch)
tree1f58356cfd90966065bbc086ba9b8b1d8378e1ad /Debian/Dgit.pm
parent359f4592c6035ee027cf283c6af7dcd435038776 (diff)
Dgit.pm: Move resolve_upstream_version from git-debrebase
No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'Debian/Dgit.pm')
-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);