chiark / gitweb /
Provide dgit setup-new-tree (like dpkg-setup-mergechangelogs but only does it if...
[dgit.git] / dgit.1
diff --git a/dgit.1 b/dgit.1
index 90ed69eb9163a42778ff7a64a52d7e6d2fece4b7..c0c14504abb1bb13a6221bb0cb7bec768b02bfb9 100644 (file)
--- a/dgit.1
+++ b/dgit.1
@@ -126,7 +126,7 @@ Print a usage summary.
 Constructs the source package, uses
 .B  sbuild
 to do a binary build, and uses mergechanges to merge the source and
 Constructs the source package, uses
 .B  sbuild
 to do a binary build, and uses mergechanges to merge the source and
-binary changes files.  Options and argumments after sbuild will be
+binary changes files.  Options and arguments after sbuild will be
 passed on to sbuild.  Changes files matching
 .IB package _ version _*.changes
 in the parent directory will be removed; the output is left in
 passed on to sbuild.  Changes files matching
 .IB package _ version _*.changes
 in the parent directory will be removed; the output is left in
@@ -137,7 +137,7 @@ Tagging, signing and actually uploading should be left to dgit push.
 \fBdgit git-build\fR ...
 Runs
 .B git-buildpackage
 \fBdgit git-build\fR ...
 Runs
 .B git-buildpackage
-with some suitable options.  Options and argumments after git-build
+with some suitable options.  Options and arguments after git-build
 will be passed on to git-buildpackage.
 
 Tagging, signing and actually uploading should be left to dgit push.
 will be passed on to git-buildpackage.
 
 Tagging, signing and actually uploading should be left to dgit push.
@@ -198,6 +198,11 @@ You will need similar enough versions of dgit on the build-host and
 the invocation host.  The build-host needs gnupg installed, with your
 public key in its keyring (but not your private key, obviously).
 .TP
 the invocation host.  The build-host needs gnupg installed, with your
 public key in its keyring (but not your private key, obviously).
 .TP
+.B dgit setup-new-tree
+Configure the current working tree the way that dgit clone would have
+set it up.  Like running dgit setup-mergechangelogs (but only does it
+if dgit is configured to do it automatically).
+.TP
 .B dgit setup-mergechangelogs
 Configures a git merge helper for the file
 .B debian/changelog
 .B dgit setup-mergechangelogs
 Configures a git merge helper for the file
 .B debian/changelog
@@ -243,7 +248,11 @@ servers.
 .BI -k keyid
 Use
 .I keyid
 .BI -k keyid
 Use
 .I keyid
-for signing the tag and the upload.
+for signing the tag and the upload.  The default comes from the
+distro's
+.B keyid
+config setting (see CONFIGURATION, below), or failing that, gnupg's
+default.
 .TP
 .BR --no-sign
 does not sign tags or uploads (meaningful only with push).
 .TP
 .BR --no-sign
 does not sign tags or uploads (meaningful only with push).
@@ -302,8 +311,10 @@ The build-dependencies are not checked (due to
 which violates policy, but may work in practice.
 .TP
 .BR -N " | " --new
 which violates policy, but may work in practice.
 .TP
 .BR -N " | " --new
-The package may be new in this suite.  Without this, dgit will
-refuse to push.
+The package is or may be new in this suite.  Without this, dgit will
+refuse to push.  It may (for Debian, will) be unable to access the git
+history for any packages which have been newly pushed and have not yet
+been published.
 .TP
 .BR --ignore-dirty
 Do not complain if the working tree does not match your git HEAD.
 .TP
 .BR --ignore-dirty
 Do not complain if the working tree does not match your git HEAD.
@@ -370,7 +381,7 @@ fixing up, dgit push will fail.
 .TP
 .BI -D
 Prints debugging information to stderr.  Repeating the option produces
 .TP
 .BI -D
 Prints debugging information to stderr.  Repeating the option produces
-more output (currently, up to -DDD is meaningfully different).
+more output (currently, up to -DDDD is meaningfully different).
 .TP
 .BI -c name = value
 Specifies a git configuration option, to be used for this run.
 .TP
 .BI -c name = value
 Specifies a git configuration option, to be used for this run.
@@ -459,7 +470,12 @@ Usually, for passing options to dpkg-genchanges, you should use
 See notes above regarding ssh and dgit.
 
 NB that --gpg:option is not supported (because debsign does not
 See notes above regarding ssh and dgit.
 
 NB that --gpg:option is not supported (because debsign does not
-have that facility).  But see -k.
+have that facility).
+But see
+.B -k
+and the
+.B keyid
+distro config setting.
 .TP
 .BR -d "\fIdistro\fR | " --distro= \fIdistro\fR
 Specifies that the suite to be operated on is part of distro
 .TP
 .BR -d "\fIdistro\fR | " --distro= \fIdistro\fR
 Specifies that the suite to be operated on is part of distro
@@ -530,12 +546,14 @@ It is always possible with dgit to clone or fetch a package, make
 changes in git (using git-commit) on the suite branch
 .RB ( "git checkout dgit/" \fIsuite\fR)
 and then dgit push.  You can use whatever gitish techniques you like
 changes in git (using git-commit) on the suite branch
 .RB ( "git checkout dgit/" \fIsuite\fR)
 and then dgit push.  You can use whatever gitish techniques you like
-to construct the commit to push; the only requirement is that it is a
+to construct the commits to push;
+the only requirement is that what you push is a
 descendant of the state of the archive, as provided by dgit in the
 remote tracking branch
 .BR remotes/dgit/dgit/ \fIsuite\fR.
 
 descendant of the state of the archive, as provided by dgit in the
 remote tracking branch
 .BR remotes/dgit/dgit/ \fIsuite\fR.
 
-If you are using dgit to do an NMU, and don't know about the
+If you are using dgit to do an NMU (in Debian),
+and don't know about the
 maintainers' preferred packaging workflows, you should make your
 changes as a linear series of (logicially separated) commits on top of
 what's already in the archive.
 maintainers' preferred packaging workflows, you should make your
 changes as a linear series of (logicially separated) commits on top of
 what's already in the archive.
@@ -564,7 +582,7 @@ branch
 and merge that other commit
 .RB ( "git merge debian/" \fIversion\fR).
 Hopefully this merge will be trivial because the two trees should
 and merge that other commit
 .RB ( "git merge debian/" \fIversion\fR).
 Hopefully this merge will be trivial because the two trees should
-be the same.  The resulting branch head can be merged into your
+be very similar.  The resulting branch head can be merged into your
 working branches
 .RB ( "git checkout master && git merge dgit/" \fIsuite\fR).
 
 working branches
 .RB ( "git checkout master && git merge dgit/" \fIsuite\fR).
 
@@ -598,7 +616,6 @@ Settings likely to be useful for an end user include:
 Specifies the distro for a suite.  dgit keys off the suite name (which
 appears in changelogs etc.), and uses that to determine the distro
 which is involved.  The config used is thereafter that for the distro.
 Specifies the distro for a suite.  dgit keys off the suite name (which
 appears in changelogs etc.), and uses that to determine the distro
 which is involved.  The config used is thereafter that for the distro.
-it then looks
 .TP
 .BI dgit.default.distro " distro"
 The default distro for an unknown suite.
 .TP
 .BI dgit.default.distro " distro"
 The default distro for an unknown suite.
@@ -606,11 +623,13 @@ The default distro for an unknown suite.
 .BR dgit-distro. \fIdistro\fR .readonly " " auto | a " | " true | t | y | 1 " | " false | f | n | 0
 Whether you have push access to the distro.
 For Debian, it is OK to use auto, which uses readonly mode if you are
 .BR dgit-distro. \fIdistro\fR .readonly " " auto | a " | " true | t | y | 1 " | " false | f | n | 0
 Whether you have push access to the distro.
 For Debian, it is OK to use auto, which uses readonly mode if you are
-not pushing right now,
-but setting this to false will avoid relying on the mirror of the dgit
+not pushing right now;
+but, setting this to false will avoid relying on the mirror of the dgit
 git repository server.
 .TP
 .BI dgit-distro. distro .keyid
 git repository server.
 .TP
 .BI dgit-distro. distro .keyid
+See also
+.BR -k .
 .TP
 .BI dgit-distro. distro .mirror " url"
 .TP
 .TP
 .BI dgit-distro. distro .mirror " url"
 .TP
@@ -619,6 +638,28 @@ Not relevant for Debian.
 .TP
 .BI dgit-distro. distro .upload-host
 Might be useful if you have an intermediate queue server.
 .TP
 .BI dgit-distro. distro .upload-host
 Might be useful if you have an intermediate queue server.
+.TP
+.BI dgit-distro. distro .setup-mergechangelogs
+Whether to setup a merge driver which uses dpkg-mergechangelogs for
+debian/changelog.  True by default.  Ignored for dgit
+setup-mergechangelogs, which does it anyway.
+.TP
+.BI dgit-distro. distro .cmd- cmd
+Program to use instead of
+.IR cmd .
+Works like
+.BR -- \fIcmd\fR = "... ."
+.TP
+.BI dgit-distro. distro .opts- cmd
+Extra options to pass to
+.IR cmd .
+Works like
+.BR -- \fIcmd\fR : "... ."
+To pass several options, configure multiple values in git config
+(with git config --add).  The options for
+.BI dgit.default.opts- cmd
+.BI dgit-distro. distro /push.opts- cmd
+and are all used, followed by options from dgit's command line.
 .SH ACCESS CONFIGURATION
 There are many other settings which specify how a particular distro's
 services (archive and git) are provided.  These should not normally be
 .SH ACCESS CONFIGURATION
 There are many other settings which specify how a particular distro's
 services (archive and git) are provided.  These should not normally be