chiark / gitweb /
changelog: More from gbp-dch
[dgit.git] / git-debrebase
index 5e8a8bb2dc81b979e1e15f95cc5ad744a67da31a..efb0cea4997e102d225aa896fb0ca88b1c0dbcf4 100755 (executable)
@@ -47,7 +47,7 @@ usages:
   git-debrebase [<options>] prepush [--prose=...]
   git-debrebase [<options>] quick|conclude
   git-debrebase [<options>] new-upstream <new-version> [<details ...>]
-  git-debrebase [<options>] convert-from-gbp [<upstream-commitish>]
+  git-debrebase [<options>] convert-from-* ...
   ...
 See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).
 END
@@ -2008,6 +2008,7 @@ 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;
@@ -2018,10 +2019,12 @@ sub resolve_upstream_version ($$) {
                " Check version, and specify upstream commitish explicitly.",
                "@tried";
        }
+       $used = $tried[-1];
     }
     $new_upstream = git_rev_parse $new_upstream;
 
-    return $new_upstream;
+    return ($new_upstream, $used);
+    # used is a human-readable idea of what we found
 }
 
 sub cmd_new_upstream () {
@@ -2043,7 +2046,8 @@ sub cmd_new_upstream () {
 
     my $new_upstream = shift @ARGV;
     my $new_upstream_version = upstreamversion  $new_version;
-    $new_upstream =
+    my $new_upstream_used;
+    ($new_upstream, $new_upstream_used) =
        resolve_upstream_version $new_upstream, $new_upstream_version;
 
     record_ffq_auto();
@@ -2537,6 +2541,7 @@ sub complete_convert_from ($$$$) {
     update_head_checkout $old_head, $new_head, $mrest;
 }
 
+sub cmd_convert_from_unapplied () { cmd_convert_from_gbp(); }
 sub cmd_convert_from_gbp () {
     badusage __ "want only 1 optional argument, the upstream git commitish"
        unless @ARGV<=1;
@@ -2548,7 +2553,7 @@ sub cmd_convert_from_gbp () {
     my ($upstream_spec) = @ARGV;
 
     my $upstream_version = upstreamversion $version;
-    my $upstream =
+    my ($upstream, $upstream_used) =
        resolve_upstream_version($upstream_spec, $upstream_version);
 
     my ($old_head, $gdrlastinfo) = begin_convert_from();
@@ -2558,7 +2563,7 @@ sub cmd_convert_from_gbp () {
        runcmd @git, qw(--no-pager diff --stat),
            $upstream, $old_head,
            qw( -- :!/debian :/);
-       fail f_ <<END, $upstream_spec, $upstream_spec;
+       fail f_ <<END, $upstream_used, $upstream;
 upstream (%s) and HEAD are not
 identical in upstream files.  See diffstat above, or run
   git diff %s HEAD -- :!/debian :/
@@ -2575,9 +2580,9 @@ END
        if (length $wrong) {
            snag 'unexpected-upstream-changes', f_
                "history between upstream (%s) and HEAD contains direct changes to upstream files - are you sure this is a gbp (patches-unapplied) branch?",
-               $upstream;
+               $upstream_used;
            print STDERR f_ "list expected changes with:  %s\n", 
- "git log --stat --ancestry-path $upstream_spec..HEAD -- :/ ':!/debian'";
+ "git log --stat --ancestry-path $upstream..HEAD -- :/ ':!/debian'";
        }
     }