diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-06-17 13:04:39 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-06-17 13:14:21 +0100 |
commit | edc1cd049cfa01e7d6249ea199725d2448858704 (patch) | |
tree | 19b33409c2401b5799a7a81dd573f09077b0eed1 /git-debrebase | |
parent | 1e87a7002be126e23144cd2b0a43271e522a75e7 (diff) |
git-debrebase: Use git-deborig style upstream commitish finding
As discussed in email with Sean.
We could use git-deborig --just-print --version= but its error
handling is rather troublesome.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-x | git-debrebase | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/git-debrebase b/git-debrebase index 769b9b9..3de0aa9 100755 --- a/git-debrebase +++ b/git-debrebase @@ -1140,7 +1140,23 @@ sub cmd_new_upstream_v0 () { my $new_version = (new Dpkg::Version scalar(shift @ARGV), check => 1); my $new_upstream_version = $new_version->version(); - my $new_upstream = git_rev_parse (shift @ARGV // 'upstream'); + my $new_upstream = shift @ARGV; + if (!defined $new_upstream) { + my @tried; + # todo: at some point maybe use git-deborig to do this + foreach my $tagpfx ('', 'v', 'upstream/') { + my $tag = $tagpfx.(dep14_version_mangle $new_upstream_version); + $new_upstream = git_get_ref "refs/tags/$tag"; + last if length $new_upstream; + push @tried, $tag; + } + if (!length $new_upstream) { + fail "Could not determine appropriate upstream commitish.\n". + " (Tried these tags: @tried)\n". + " Check version, and specify upstream commitish explicitly."; + } + } + $new_upstream = git_rev_parse $new_upstream; record_ffq_auto(); |