From edc1cd049cfa01e7d6249ea199725d2448858704 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 17 Jun 2018 13:04:39 +0100 Subject: [PATCH] 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 --- git-debrebase | 18 +++++++++++++++++- git-debrebase.1.pod | 5 ++++- tests/tests/gdr-newupstream-v0 | 7 ++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/git-debrebase b/git-debrebase index 769b9b94..3de0aa9f 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(); diff --git a/git-debrebase.1.pod b/git-debrebase.1.pod index 4d4c85a9..f17f1d67 100644 --- a/git-debrebase.1.pod +++ b/git-debrebase.1.pod @@ -142,7 +142,10 @@ The are, optionally, in order: =item The new upstream branch (or commit-ish). -Default is C. +The default is to look for one of these tags, in this order: +U vU upstream/U; +where U is the new upstream version. +(This is the same algorithm as L.) It is a snag if the upstream contains a debian/ directory; if forced to proceed, diff --git a/tests/tests/gdr-newupstream-v0 b/tests/tests/gdr-newupstream-v0 index 9b283c0b..485c8084 100755 --- a/tests/tests/gdr-newupstream-v0 +++ b/tests/tests/gdr-newupstream-v0 @@ -30,6 +30,11 @@ v=2.1-1 git checkout master +t-expect-fail F:'Could not determine appropriate upstream commitish' \ +t-git-debrebase new-upstream-v0 $v + +git tag v2.1 upstream + t-git-debrebase new-upstream-v0 $v t-gdr-good laundered @@ -49,7 +54,7 @@ anchor=$(perl <../anal.anch -ne ' exit; ') -t-git-debrebase --anchor=$anchor -fanchor-treated new-upstream-v0 $v +t-git-debrebase --anchor=$anchor -fanchor-treated new-upstream-v0 $v upstream t-gdr-good laundered t-git-debrebase stitch -- 2.30.2