X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=9936c5f943645d1956254535f0ebfd7da8f27442;hb=bdcfbefe02a6dba3f869e1a93e98e107a80edc7b;hp=a5736e1c6946c6b8d082941f4ed689384956cd56;hpb=ff7144ab274902514897ab18a76a37aced50b047;p=dgit.git diff --git a/dgit b/dgit index a5736e1c..9936c5f9 100755 --- a/dgit +++ b/dgit @@ -332,7 +332,7 @@ sub printcmd { } sub failedcmd { - { local ($!); printcmd \*STDERR, "$_[0]: failed command:", @_ or die $!; }; + { local ($!); printcmd \*STDERR, "$us: failed command:", @_ or die $!; }; if ($!) { fail "failed to fork/exec: $!"; } elsif (!($? & 0xff)) { @@ -469,6 +469,14 @@ our %defcfg = ('dgit.default.distro' => 'debian', 'dgit-distro.test-dummy.archive-query' => "dummycat:$td/aq", 'dgit-distro.test-dummy.mirror' => "file://$td/mirror/", 'dgit-distro.test-dummy.upload-host' => 'test-dummy', + 'dgit-distro.test-dummy-drs.ssh' => "$td/ssh", + 'dgit-distro.test-dummy-drs.username' => "alice", + 'dgit-distro.test-dummy-drs.git-check' => "true", + 'dgit-distro.test-dummy-drs.git-create' => "true", + 'dgit-distro.test-dummy-drs.git-url' => "$td/git", + 'dgit-distro.test-dummy-drs.archive-query' => "dummycat:$td/aq", + 'dgit-distro.test-dummy-drs.mirror' => "file://$td/mirror/", + 'dgit-distro.test-dummy-drs.upload-host' => 'test-dummy', ); sub cfg { @@ -837,6 +845,8 @@ sub check_for_git () { my $r= cmdoutput @cmd; failedcmd @cmd unless $r =~ m/^[01]$/; return $r+0; + } elsif ($how eq 'true') { + return 1; } else { badcfg "unknown git-check \`$how'"; } @@ -849,6 +859,8 @@ sub create_remote_git_repo () { (access_cfg_ssh, access_gituserhost(), "set -e; cd ".access_cfg('git-path').";". " cp -a _template $package.git"); + } elsif ($how eq 'true') { + # nothing to do } else { badcfg "unknown git-create \`$how'"; } @@ -1430,27 +1442,24 @@ sub dopush () { if (!check_for_git()) { create_remote_git_repo(); } - runcmd_ordryrun @git, qw(push),access_giturl(),"HEAD:".rrref(); + runcmd_ordryrun @git, qw(push),access_giturl(), + "HEAD:".rrref(), "refs/tags/$tag"; runcmd_ordryrun @git, qw(update-ref -m), 'dgit push', lrref(), 'HEAD'; - if (!$we_are_responder) { - if (act_local()) { - rename "$dscpath.tmp",$dscpath or die "$dscfn $!"; - } else { - progress "[new .dsc left in $dscpath.tmp]"; - } - } - if ($we_are_responder) { my $dryrunsuffix = act_local() ? "" : ".tmp"; responder_receive_files('signed-dsc-changes', "$dscpath$dryrunsuffix", "$changesfile$dryrunsuffix"); } else { + if (act_local()) { + rename "$dscpath.tmp",$dscpath or die "$dscfn $!"; + } else { + progress "[new .dsc left in $dscpath.tmp]"; + } sign_changes $changesfile; } - runcmd_ordryrun @git, qw(push),access_giturl(),"refs/tags/$tag"; my $host = access_cfg('upload-host','RETURN-UNDEF'); my @hostarg = defined($host) ? ($host,) : (); runcmd_ordryrun @dput, @hostarg, $changesfile; @@ -1857,6 +1866,13 @@ sub changesopts () { my @opts =@changesopts[1..$#changesopts]; if (!defined $changes_since_version) { my @vsns = archive_query('archive_query'); + my @quirk = access_quirk(); + if ($quirk[0] eq 'backports') { + local $isuite = $quirk[2]; + local $csuite; + canonicalise_suite(); + push @vsns, archive_query('archive_query'); + } if (@vsns) { @vsns = map { $_->[0] } @vsns; @vsns = sort { -version_compare_string($a, $b) } @vsns;