X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit;h=47e05f79727dda47e76dc230851300c97d26b0fc;hp=19c0657b17eb6741edf3112c8fba0ed9ce9d76b5;hb=e7cfaa23447394d52d83cf2d71636f6d41d4da72;hpb=fd8f387167425d0c9da7bce0ffc460a57d0ceced diff --git a/dgit b/dgit index 19c0657b..47e05f79 100755 --- a/dgit +++ b/dgit @@ -111,7 +111,7 @@ sub lref () { return "refs/heads/".lbranch(); } sub lrref () { return "refs/remotes/$remotename/".server_branch($csuite); } sub rrref () { return server_ref($csuite); } -sub lrfetchrefs () { return "refs/dgit-fetch/$isuite"; } +sub lrfetchrefs () { return "refs/dgit-fetch/$csuite"; } sub stripepoch ($) { my ($vsn) = @_; @@ -1570,7 +1570,7 @@ sub push_parse_changelog ($) { $package = getfield $clogp, 'Source'; my $cversion = getfield $clogp, 'Version'; - my $tag = debiantag($cversion); + my $tag = debiantag($cversion, access_basedistro); runcmd @git, qw(check-ref-format), $tag; my $dscfn = dscfn($cversion); @@ -1897,10 +1897,12 @@ sub cmd_push { if ($new_package) { local ($package) = $existing_package; # this is a hack canonicalise_suite(); - } - if (defined $specsuite && $specsuite ne $isuite) { + } else { canonicalise_suite(); - $csuite eq $specsuite or + } + if (defined $specsuite && + $specsuite ne $isuite && + $specsuite ne $csuite) { fail "dgit push: changelog specifies $isuite ($csuite)". " but command line specifies $specsuite"; } @@ -2628,17 +2630,35 @@ sub changesopts () { return @opts; } +sub massage_dbp_args ($) { + my ($cmd) = @_; + return unless $cleanmode =~ m/git|none/; + debugcmd '#massaging#', @$cmd if $debuglevel>1; + my @newcmd = shift @$cmd; + # -nc has the side effect of specifying -b if nothing else specified + push @newcmd, '-nc'; + # and some combinations of -S, -b, et al, are errors, rather than + # later simply overriding earlier + push @newcmd, '-F' unless grep { m/^-[bBASF]$/ } @$cmd; + push @newcmd, @$cmd; + @$cmd = @newcmd; +} + sub cmd_build { build_prep(); - runcmd_ordryrun_local @dpkgbuildpackage, qw(-us -uc), changesopts(), @ARGV; + my @dbp = (@dpkgbuildpackage, qw(-us -uc), changesopts(), @ARGV); + massage_dbp_args \@dbp; + runcmd_ordryrun_local @dbp; printdone "build successful\n"; } sub cmd_git_build { build_prep(); + my @dbp = @dpkgbuildpackage; + massage_dbp_args \@dbp; my @cmd = (qw(git-buildpackage -us -uc --git-no-sign-tags), - "--git-builder=@dpkgbuildpackage"); + "--git-builder=@dbp"); unless (grep { m/^--git-debian-branch|^--git-ignore-branch/ } @ARGV) { canonicalise_suite(); push @cmd, "--git-debian-branch=".lbranch();