summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-22 14:00:12 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-22 14:00:12 +0100
commite4ff2dddf705d2025b5cf03d1af2ef9161ed54f4 (patch)
treed1a0716592fdd5e648f155fc7a23f882361a99a8
parent8c50bd93d6dd644c0eef242046e0f818083e206f (diff)
support _multi.changes
-rwxr-xr-xdgit18
-rw-r--r--dgit.13
2 files changed, 14 insertions, 7 deletions
diff --git a/dgit b/dgit
index eb263b1..d61cea7 100755
--- a/dgit
+++ b/dgit
@@ -772,12 +772,18 @@ sub dopush () {
$dsc->{$ourdscfield} = rev_parse('HEAD');
$dsc->save("../$dscfn.tmp") or die $!;
if (!$changesfile) {
- my $pat = "${package}_c$version_*.changes";
- my @cs = glob "../$pat";
- fail "failed to find unique changes file".
- " (looked for $pat in ..); perhaps you need to use dgit -C"
- unless @cs==1;
- ($changesfile) = @cs;
+ my $multi = "${package}_${cversion}_multi.changes";
+ if (stat $multi) {
+ $changesfile = $multi;
+ } else {
+ $!==&ENOENT or die "$multi: $!";
+ my $pat = "${package}_${cversion}_*.changes";
+ my @cs = glob "../$pat";
+ fail "failed to find unique changes file".
+ " (looked for $pat in ..); perhaps you need to use dgit -C"
+ unless @cs==1;
+ ($changesfile) = @cs;
+ }
}
my $tag = debiantag($dversion);
if (!check_for_git()) {
diff --git a/dgit.1 b/dgit.1
index e0a10ef..1f5fd84 100644
--- a/dgit.1
+++ b/dgit.1
@@ -321,7 +321,8 @@ Can be repeated as necessary.
.BI -C changesfile
Specifies the .changes file which is to be uploaded. By default
dgit push looks for single .changes file in the parent directory whose
-filename suggests it is for the right package and version.
+filename suggests it is for the right package and version - or,
+if there is a _multi.changes file, dgit uses that.
.TP
.BI --existing-package= package
dgit push needs to canonicalise the suite name. But currently