diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2013-08-22 14:45:18 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2013-08-22 14:45:18 +0100 |
commit | 1957bfa6d464f8a331a82c19532d4d53c7b1e541 (patch) | |
tree | 49b3d577005354fbeb8656c79d0bfb239bdaac11 | |
parent | ca08ab83e953ea370adfc71d2da34516eaf5252f (diff) |
New --distro option (helps with unknown suites).
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rwxr-xr-x | dgit | 7 | ||||
-rw-r--r-- | dgit.1 | 21 |
4 files changed, 28 insertions, 2 deletions
@@ -1 +0,0 @@ -distro option diff --git a/debian/changelog b/debian/changelog index fea1dd4..797db8a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ dgit (0.4~~iwj) experimental; urgency=low * Better error checking when parsing RFC822-style control data. * Better checking that the supplied .dsc and debian/changes correspond. * Ordering improvement in push: don't add dsc field until git push done. + * New --distro option (helps with unknown suites). * Bugfixes. -- Ian Jackson <ijackson@chiark.greenend.org.uk> Thu, 22 Aug 2013 13:36:44 +0100 @@ -28,6 +28,7 @@ use Dpkg::Version; use POSIX; our $isuite = 'unstable'; +our $idistro; our $package; our $sign = 1; @@ -246,7 +247,7 @@ sub access_distro () { sub access_cfg (@) { my (@keys) = @_; - my $distro = access_distro(); + my $distro = $idistro || access_distro(); my $value = cfg(map { ("dgit-distro.$distro.$_", "dgit.default.$_") } @keys); return $value; @@ -978,6 +979,8 @@ sub parseopts () { push @$om, $2; } elsif (m/^--existing-package=(.*)/s) { $existing_package = $1; + } elsif (m/^--distro=(.*)/s) { + $idistro = $1; } else { badusage "unknown long option \`$_'"; } @@ -994,6 +997,8 @@ sub parseopts () { $new_package=1; } elsif (s/^-c(.*=.*)//s) { push @git, '-c', $1; + } elsif (s/^-d(.*)//s) { + $idistro = $1; } elsif (s/^-C(.*)//s) { $changesfile = $1; } elsif (s/^-k(.*)//s) { @@ -321,6 +321,27 @@ or .BR mergechanges . Can be repeated as necessary. .TP +.BR -d "\fIdistro\fR | " --distro= \fIdistro\fR +Specifies that the suite to be operated on is part of distro +.IR distro . +This overrides the default value found from the git config option +.BR dgit-suite. \fIsuite\fR .distro . +The only effect is that other configuration variables (used +for accessing the archive and dgit-repos) used are +.BR dgit-distro. \fIdistro\fR .* . + +If your suite is part of a distro that dgit already knows about, you +can use this option to make dgit work even if your dgit doesn't know +about the suite. For example, specifying +.B -ddebian +will work when the suite is an unknown suite in the Debian archive. + +To define a new distro it is necessary to define methods and URLs +for fetching (and, for dgit push, altering) a variety of information both +in the archive and in dgit-repos. How to do this is not yet +documented, and currently the arrangements are unpleasant. See +BUGS. +.TP .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 |