From: Ian Jackson Date: Thu, 7 Nov 2013 00:14:53 +0000 (+0000) Subject: Merge branch 'master' into wip.remote X-Git-Tag: debian/0.18_experimental2~1 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=641eeadd77583420e7ad32d6a0414a24f4fc83bb Merge branch 'master' into wip.remote Conflicts: debian/changelog dgit --- 641eeadd77583420e7ad32d6a0414a24f4fc83bb diff --cc debian/changelog index a8f074d9,eab01a06..f57b4acd --- a/debian/changelog +++ b/debian/changelog @@@ -1,96 -1,11 +1,105 @@@ +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/. + + -- Ian Jackson 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 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 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 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 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). + * 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 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 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 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 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 b8922dae,207b5d09..2a5e26b0 --- a/dgit +++ b/dgit @@@ -563,6 -358,23 +563,23 @@@ sub parsechangelog return $c; } + 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= [show-ref exited 1]\n"; ++ printdebug "ref $refname= [show-ref exited 1]\n"; + return ''; + } + if ($got =~ m/^(\w+) \Q$refname\E$/m) { - print DEBUG "ref $refname=$1\n"; ++ printdebug "ref $refname=$1\n"; + return $1; + } else { - print DEBUG "ref $refname= [no match]\n"; ++ 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 = ; - 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();