From 2baa64c36aedd47d06aa853ef780dbcffa7131bb Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 12 Sep 2013 00:10:50 +0100 Subject: More comprehensive warnings in many cases of archive skew. --- debian/changelog | 1 + dgit | 38 ++++++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 507d2c1..89b5c1f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ dgit (0.15) unstable; urgency=low * Provide `dgit version' and `--version'. Closes: #721654. * Better handling of packages pushed using dgit and stuck in NEW. (And, use of `--new' is not needed with fetch.) Closes: #722199. + * More comprehensive warnings in many cases of archive skew. -- diff --git a/dgit b/dgit index 123c2d5..1838f2f 100755 --- a/dgit +++ b/dgit @@ -131,7 +131,7 @@ sub url_get { return $r->decoded_content(); } -our ($dscdata,$dscurl,$dsc); +our ($dscdata,$dscurl,$dsc,$skew_warning_vsn); sub printcmd { my $fh = shift @_; @@ -450,7 +450,10 @@ sub get_archive_dsc () { my ($vsn,$subpath) = @$vinfo; $dscurl = access_cfg('mirror').$subpath; $dscdata = url_get($dscurl); - next unless defined $dscdata; + if (!$dscdata) { + $skew_warning_vsn = $vsn if !defined $skew_warning_vsn; + next; + } my $dscfh = new IO::File \$dscdata, '<' or die $!; print DEBUG Dumper($dscdata) if $debug>1; $dsc = parsecontrolfh($dscfh,$dscurl, allow_pgp=>1); @@ -750,12 +753,20 @@ END $hash = $lastpush_hash; print STDERR <$clogf", + @git, qw(cat-file blob), "$hash:debian/changelog"; + my $gotclogp = parsechangelog("-l$clogf"); + my $got_vsn = getfield $gotclogp, 'Version'; + print DEBUG "SKEW CHECK GOT $got_vsn\n"; + if (version_compare_string($got_vsn, $skew_warning_vsn) < 0) { + print STDERR <