summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2013-09-26 01:14:55 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2013-09-26 01:14:55 +0100
commit6c9c982217c2e5fd2f64fa55aaf8a3b6ac89e14f (patch)
treea52a2fd311df10897b76e3f3166d7abaae4de40a /dgit
parent68dadfa3503db1f12b4402bbf043d51441a9a412 (diff)
push actually takes an optional suite, like it says in the synopsis.
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit19
1 files changed, 14 insertions, 5 deletions
diff --git a/dgit b/dgit
index 2fb3e0e..b4c9316 100755
--- a/dgit
+++ b/dgit
@@ -1142,15 +1142,24 @@ sub cmd_push {
check_not_dirty();
my $clogp = parsechangelog();
$package = getfield $clogp, 'Source';
+ my $specsuite;
if (@ARGV==0) {
- $isuite = getfield $clogp, 'Distribution';
- if ($new_package) {
- local ($package) = $existing_package; # this is a hack
- canonicalise_suite();
- }
+ } elsif (@ARGV==1) {
+ ($specsuite) = (@ARGV);
} else {
badusage "incorrect arguments to dgit push";
}
+ $isuite = getfield $clogp, 'Distribution';
+ if ($new_package) {
+ local ($package) = $existing_package; # this is a hack
+ canonicalise_suite();
+ }
+ if (defined $specsuite && $specsuite ne $isuite) {
+ canonicalise_suite();
+ $csuite eq $specsuite or
+ fail "dgit push: changelog specifies $isuite ($csuite)".
+ " but command line specifies $specsuite";
+ }
if (check_for_git()) {
git_fetch_us();
}