chiark / gitweb /
Merge branch 'master' into wip.remote
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 7 Nov 2013 00:14:53 +0000 (00:14 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 7 Nov 2013 00:14:53 +0000 (00:14 +0000)
Conflicts:
debian/changelog
dgit

1  2 
debian/changelog
dgit

index a8f074d95c3474ab3042039e7f284ee5dbbc0cc8,eab01a0644ad1dc5605c8b1271f4fbcd88024af3..f57b4acd78cd1028459476d2aa46c25517a9f8ff
 +dgit (0.18~experimental2) experimental; urgency=low
 +
 +  * Merge in accidentally-dropped changes from 0.17~experimental7.
++  * Merge bugfix from master (unstable/testing) branch.
 +
 + --
 +
+ dgit (0.17) unstable; urgency=high
+   * Do not grobble around in .git/refs/; instead, use git-show-ref.
+     This avoids breaking when git makes packed refs.  Closes:728893.
+   * Clarify error message for missing refs/remotes/dgit/dgit/<suite>.
+  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 07 Nov 2013 00:02:47 +0000
 +dgit (0.18~experimental1) experimental; urgency=low
 +
 +  * No update to code.
 +    dgit 0.17 is going to go into unstable soon, and we need to
 +     (a) test it (so this is an upload for testing); and
 +     (b) bump the version number in experimental to keep it here
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Wed, 06 Nov 2013 21:54:15 +0000
 +
 +dgit (0.17~experimental7) experimental; urgency=low
 +
 +  * manpage: Remove comment in BUGS about lack of policy docs
 +    for Dgit field, which is specified now.  Closes:#720201.
 +  * manpage: Make discussion of --existing-package less scary.  The
 +    default archive access method no longer needs it.  Closes:#720171.
 +
 + --
 +
 +dgit (0.17~experimental6) experimental; urgency=low
 +
 +  * No update to code.  Upload to remove "DO NOT USE" indication.
 +    This one appears to work.
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 25 Oct 2013 17:24:38 +0100
 +
 +dgit (0.17~experimental5) experimental; urgency=low
 +
 +  TEST PUSH DO NOT USE
 +  * No update, just testing remote push.
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 25 Oct 2013 17:21:52 +0100
 +
 +dgit (0.17~experimental4) experimental; urgency=low
 +
 +  * TEST PUSH DO NOT USE
 +  * dgit build, by default, uses the archive to find out what the correct
 +    -v<version> option is to pass to dpkg-genchanges.  Closes:#727200.
 +  * When using sbuild, pass the arguments to mergechanges in the right
 +    order so that we use the correct Description (the _source one,
 +    not the one from sbuild which didn't get e.g. -v<version>).
 +  * Clarify the manpage's comments about orig tarballs.  Closes: #723605.
 +  * Abolish the sshdakls method and replace it with sshpsql: that is, ssh
 +    (to coccia, by default) and run sql commands on the ftpmaster
 +    database.  This is faster and has fewer bugs but is vulnerable to db
 +    schema changes.  Closes:#726955.  Closes:#720170.  Closes:#720176.
 +  * Fix the "shellquote" command to work properly.  The bugs in it ought
 +    not to have caused any real trouble in previous versions of dgit.
 +  * Retrospectively mention in changelog entry for 0.16~experimental2
 +    that it Closes:#727125.
 +  * Mention "git merge", not "git-merge", in helpful message.
 +    Closes:#725632.
 +  * Remote push support seems to work.  Closes:#721185.
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 25 Oct 2013 17:14:23 +0100
 +
 +dgit (0.17~experimental3) experimental; urgency=low
 +
 +  Minor fix to remote functionality:
 +  * Improve debug output at completion.
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 24 Oct 2013 14:00:19 +0100
 +
 +dgit (0.17~experimental2) experimental; urgency=low
 +
 +  * When generating git tags, quote the (uncanonicalised) changelog's
 +    Distribution field as the suite.
 +
 +  Changes to remote functionality:
 +  * More bugfixes.
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Wed, 23 Oct 2013 12:56:34 +0100
 +
 +dgit (0.17~experimental1) experimental; urgency=low
 +
 +  WIP DO NOT USE
 +
 +  Bugfixes:
 +  * Fix dgit --damp-run sbuild to actually work.
 +  * Improvements to implementation of --dry-run and --damp-run.
 +  * Report chdir actions in debugging output.
 +
 +  Changes to remote functionality:
 +  * Many bugfixes.
 +  * New --initiator-tempdir option.
 +
 + -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Tue, 22 Oct 2013 15:11:19 +0100
 +
  dgit (0.16) unstable; urgency=high
  
    * Format `(3.0) quilt' fixup does not mind extraneous other files
diff --cc dgit
index b8922dae0c76c9970446eb59fa4ea98deaf01420,207b5d09b6898258608f096cdc205a56ea36641e..2a5e26b0e0dcbca60b938a18e87c6fa09371316f
--- 1/dgit
--- 2/dgit
+++ b/dgit
@@@ -563,6 -358,23 +563,23 @@@ sub parsechangelog 
      return $c;
  }
  
 -      print DEBUG "ref $refname= [show-ref exited 1]\n";
+ sub git_get_ref ($) {
+     my ($refname) = @_;
+     my $got = cmdoutput_errok @git, qw(show-ref --), $refname;
+     if (!defined $got) {
+       $?==256 or fail "git show-ref failed (status $?)";
 -      print DEBUG "ref $refname=$1\n";
++      printdebug "ref $refname= [show-ref exited 1]\n";
+       return '';
+     }
+     if ($got =~ m/^(\w+) \Q$refname\E$/m) {
 -      print DEBUG "ref $refname= [no match]\n";
++      printdebug "ref $refname=$1\n";
+       return $1;
+     } else {
++      printdebug "ref $refname= [no match]\n";
+       return '';
+     }
+ }
  our %rmad;
  
  sub archive_query ($) {
@@@ -975,30 -733,21 +992,21 @@@ sub fetch_from_archive () 
        if (defined $dsc_hash) {
            $dsc_hash =~ m/\w+/ or fail "invalid hash in .dsc \`$dsc_hash'";
            $dsc_hash = $&;
 -          print "last upload to archive specified git hash\n";
 +          progress "last upload to archive specified git hash";
        } else {
 -          print "last upload to archive has NO git hash\n";
 +          progress "last upload to archive has NO git hash";
        }
      } else {
 -      print "no version available from the archive\n";
 +      progress "no version available from the archive";
      }
  
-     my $lrref_fn = ".git/".lrref();
-     if (open H, $lrref_fn) {
-       $lastpush_hash = <H>;
-       chomp $lastpush_hash;
-       die "$lrref_fn $lastpush_hash ?" unless $lastpush_hash =~ m/^\w+$/;
-     } elsif ($! == &ENOENT) {
-       $lastpush_hash = '';
-     } else {
-       die "$lrref_fn $!";
-     }
+     $lastpush_hash = git_get_ref(lrref());
 -    print DEBUG "previous reference hash=$lastpush_hash\n";
 +    printdebug "previous reference hash=$lastpush_hash\n";
      my $hash;
      if (defined $dsc_hash) {
-       fail "missing git history even though dsc has hash -".
-           " could not find commit $dsc_hash".
-           " (should be in ".access_giturl()."#".rrref().")"
+       fail "missing remote git history even though dsc has hash -".
+           " could not find ref ".lrref().
+           " (should have been fetched from ".access_giturl()."#".rrref().")"
            unless $lastpush_hash;
        $hash = $dsc_hash;
        ensure_we_have_orig();