X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=f9e6d1bc7d9443c3c866e45d3cdf81f000a6e9d9;hb=282db732c877da890e55e5664e43636f8a9647ad;hp=42fa30688d3d81d1bc36ff98c80900e4719a7153;hpb=2f62e59376dcfddcaeff1826f5de91041336a239;p=dgit.git diff --git a/dgit b/dgit index 42fa3068..f9e6d1bc 100755 --- a/dgit +++ b/dgit @@ -469,7 +469,7 @@ our %defcfg = ('dgit.default.distro' => 'debian', 'dgit-distro.debian.sshpsql-dbname' => 'service=projectb', 'dgit-distro.debian.upload-host' => 'ftp-master', # for dput 'dgit-distro.debian.mirror' => 'http://ftp.debian.org/debian/', - 'dgit-distro.debian.backports-quirk' => '%-backports*', + 'dgit-distro.debian.backports-quirk' => '(squeeze)-backports*', 'dgit-distro.debian-backports.mirror' => 'http://backports.debian.org/debian-backports/', 'dgit-distro.test-dummy.ssh' => "$td/ssh", 'dgit-distro.test-dummy.username' => "alice", @@ -500,7 +500,8 @@ sub cfg { my $dv = $defcfg{$c}; return $dv if defined $dv; } - badcfg "need value for one of: @_"; + badcfg "need value for one of: @_\n". + "$us: distro or suite appears not to be (properly) supported"; } sub access_basedistro () { @@ -515,9 +516,10 @@ sub access_quirk () { 'RETURN-UNDEF'); if (defined $backports_quirk) { my $re = $backports_quirk; - $re =~ s/[^-0-9a-z_\%*]/\\$&/ig; + $re =~ s/[^-0-9a-z_\%*()]/\\$&/ig; $re =~ s/\*/.*/g; - $re =~ s/\%/([-0-9a-z_]+)/ or badcfg "backports-quirk needs \%"; + $re =~ s/\%/([-0-9a-z_]+)/ + or $re =~ m/[()]/ or badcfg "backports-quirk needs \% or ( )"; if ($isuite =~ m/^$re$/) { return ('backports',"$basedistro-backports",$1); } @@ -1390,13 +1392,17 @@ sub dopush () { $dscpath =~ m#^/# ? $dscpath : "../../../$dscpath"; my ($tree,$dir) = mktree_in_ud_from_only_subdir(); changedir '../../../..'; - my @diffcmd = (@git, qw(diff --exit-code), $tree); + my $diffopt = $debug>0 ? '--exit-code' : '--quiet'; + my @diffcmd = (@git, qw(diff), $diffopt, $tree); printcmd \*DEBUG,$debugprefix."+",@diffcmd; $!=0; $?=0; - if (system @diffcmd) { - if ($! && $?==256) { + my $r = system @diffcmd; + if ($r) { + if ($r==256) { fail "$dscfn specifies a different tree to your HEAD commit;". - " perhaps you forgot to build"; + " perhaps you forgot to build". + ($diffopt eq '--exit-code' ? "" : + " (run with -D to see full diff output)"); } else { failedcmd @diffcmd; }