X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit;h=78a0e31dbd44a4efee44fb1661c475f261da256f;hp=940c89b5cb608c1cf69e046a6659b4ecf8d68b32;hb=377e1c315cc73e5364506cf5eb601de130f72c77;hpb=1957bfa6d464f8a331a82c19532d4d53c7b1e541 diff --git a/dgit b/dgit index 940c89b5..78a0e31d 100755 --- a/dgit +++ b/dgit @@ -70,7 +70,11 @@ my $lbranch_re = '^refs/heads/'.$branchprefix.'/([^/.]+)$'; sub lref () { return "refs/heads/".lbranch(); } sub lrref () { return "refs/remotes/$remotename/$csuite"; } sub rrref () { return "refs/$branchprefix/$csuite"; } -sub debiantag ($) { return "debian/$_[0]"; } +sub debiantag ($) { + my ($v) = @_; + $v =~ y/~:/_%/; + return "debian/$v"; +} sub dscfn ($) { return "${package}_$_[0].dsc"; } @@ -707,7 +711,15 @@ sub pull () { } sub check_not_dirty () { - runcmd @git, qw(diff --quiet HEAD); + my @cmd = (@git, qw(diff --quiet HEAD)); + printcmd(\*DEBUG,"+",@cmd) if $debug>0; + $!=0; $?=0; system @cmd; + return if !$! && !$?; + if (!$! && $?==256) { + fail "working tree is dirty (does not match HEAD)"; + } else { + failedcmd @cmd; + } } sub commit_quilty_patch ($) { @@ -803,6 +815,9 @@ sub dopush () { print "[new .dsc left in $dscfn.tmp]\n"; } if ($sign) { + if (!defined $keyid) { + $keyid = access_cfg('keyid','RETURN-UNDEF'); + } my @tag_cmd = (@git, qw(tag -s -m), "Release $dversion for $csuite [dgit]"); push @tag_cmd, qw(-u),$keyid if defined $keyid;