summaryrefslogtreecommitdiff
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
parent68dadfa3503db1f12b4402bbf043d51441a9a412 (diff)
push actually takes an optional suite, like it says in the synopsis.
-rw-r--r--debian/changelog1
-rwxr-xr-xdgit19
-rw-r--r--dgit.15
3 files changed, 18 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog
index bb7ff04..bf459a9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
dgit (0.16~experimental2) experimental; urgency=low
* WIP remote functionality. Untested, do not use.
+ * push actually takes an optional suite, like it says in the synopsis.
--
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();
}
diff --git a/dgit.1 b/dgit.1
index 251af59..b3f8f95 100644
--- a/dgit.1
+++ b/dgit.1
@@ -125,7 +125,7 @@ will be passed on to git-buildpackage.
Tagging, signing and actually uploading should be left to dgit push.
.TP
-.B dgit push
+\fBdgit push\fR [\fIsuite\fP]
Does an `upload', pushing the current HEAD to the archive (as a source
package) and to dgit-repos (as git commits). The package must already
have been built ready for upload, with the .dsc and .changes
@@ -139,7 +139,8 @@ signed tag, and finally uses dput to upload the .changes to the
archive.
dgit push always uses the package, suite and version specified in the
-debian/changelog and the .dsc, which must agree.
+debian/changelog and the .dsc, which must agree. If the command line
+specifies a suite then that must match too.
If dgit push fails while uploading, it is fine to simply retry the
dput on the .changes file at your leisure.