chiark / gitweb /
dgit: Fix another tiny typo in an error message
[dgit.git] / dgit.1
diff --git a/dgit.1 b/dgit.1
index ccf1ea597e111bb447ca86795992ae67f7883001..d23dde01384c166d71717f2955c104335a3f699d 100644 (file)
--- a/dgit.1
+++ b/dgit.1
@@ -338,8 +338,8 @@ which uses
 Set up the working tree's
 .B .git/info/attributes
 to disable all transforming attributes for all files.
-This is done by defining a macro attribute
-.B dgit-defuse-attrs
+This is done by defining a macro attribute,
+.B dgit-defuse-attrs,
 and applying it to
 .BR * .
 For why, see
@@ -355,7 +355,7 @@ in .git/info/attributes,
 but it is insufficient,
 because it was made by an earlier version of dgit
 and git has since introduced new transforming attributes,
-modifies the macro to disable the newer transformations.
+this modifies the macro to disable the newer transformations.
 
 (If there is already a macro attribute line
 .B [attr]dgit-defuse-attrs
@@ -448,7 +448,7 @@ and dgit actually imports the dsc
 dgit will make a pseudomerge
 so that the result is necessarily fast forward
 from the existing branch.
-Otherwise, if branch already exists,
+Otherwise, if \fIbranch\fR already exists,
 dgit will stop with an error message.
 
 If
@@ -538,6 +538,13 @@ This will delete all files which are not tracked by git.
 options other than dpkg-source
 are useful when the package's clean target is troublesome, or
 to avoid needing the build-dependencies.
+
+dgit will only actually clean the tree if it needs to
+(because it needs to build the source package
+or binaries from your working tree).
+Otherwise
+it will just check that there are no untracked unignored files.
+See --clean=git[-ff],always, below.
 .TP
 .BR --clean=git-ff " | " -wgf
 Use
@@ -548,11 +555,26 @@ git clean -xdf
 but it also removes any subdirectories containing different git
 trees (which only unusual packages are likely to create).
 .TP
-.BR --clean=check " | " -wc
+.BR --clean=git "[" -ff "]" ,always " | " -wga " | " -wgfa
+Like --clean=git, but always does the clean and not just a check,
+deleting any untracked un-ignored files.
+.TP
+.BR --clean=check " | " --clean=check,ignores " | " -wc " | " -wci
 Merely check that the tree is clean (does not contain uncommitted
 files).
 Avoids running rules clean,
 and can avoid needing the build-dependencies.
+
+With
+.BR ,ignores
+or
+.BR -wci ,
+untracked files covered by .gitignore are tolerated,
+so only files which show up as
+.B ?
+in git status
+(ie, ones you maybe forgot to git add)
+are treated as a problem.
 .TP
 .BR --clean=none " | " -wn
 Do not clean the tree, nor check that it is clean.
@@ -562,21 +584,50 @@ If there are
 files which are not in git, or if the build creates such files, a
 subsequent dgit push will fail.
 .TP
-.BR --clean=dpkg-source " | " -wd
+.BR --clean=dpkg-source "[" -d "] | " -wd " | " -wdd
 Use dpkg-buildpackage to do the clean, so that the source package
 is cleaned by dpkg-source running the package's clean target.
-This is the default.
-Requires the package's build dependencies.
-.TP
-.BR --clean=dpkg-source-d " | " -wdd
-Use
-.B dpkg-buildpackage -d
-to do the clean,
-so that the source package
-is cleaned by dpkg-source running the package's clean target.
-The build-dependencies are not checked (due to
-.BR -d ),
+--clean=dpkg-source is the default.
+
+Without the extra
+.BR d ,
+requires the package's build dependencies.
+
+With
+.BR ... -d
+or
+.BR -wdd ,
+the build-dependencies are not checked
+(due to passing
+.BR -d
+to dpkg-buildpackage),
 which violates policy, but may work in practice.
+
+The rules clean target will only be run if it is needed:
+when dgit is going to build source or binary packages
+from your working tree,
+rather than from your git branch
+(for example because of --include-dirty
+or because the binary package build uses your working tree).
+
+In all cases,
+dgit will check that there are (after rules clean, if applicable) no
+untracked un-ignored files,
+in case these are files you forgot to git add.
+(Except that this check is not done
+for a `3.0 (quilt)' package
+when dgit has to apply patches, dirtily, to the working tree.)
+If your package does not have a good .gitignore
+you will probably need --clean=dpkg-source,no-check aka -wdn.
+.TP
+.BR --clean=dpkg-source "[" -d "]" ,no-check " | " -wdn " | " -wddn
+Like --clean=dpkg-source, but
+does not care about untracked un-ignored files.
+.TP
+.BR --clean=dpkg-source "[" -d "]" ,all-check " | " -wda " | " -wdda
+Like --clean=dpkg-source, but
+fails even on ignored untracked files.
+This could perhaps be used to detect bugs in your rules clean target.
 .TP
 .BR -N " | " --new
 The package is or may be new in this suite.  Without this, dgit will
@@ -724,7 +775,7 @@ The use of --deliberately is declared and published in the signed tags
 generated for you by dgit,
 so that the archive software can give effect to your intent,
 and
-for the benefit humans looking at the history.
+for the benefit of humans looking at the history.
 The meanings of
 .IR something s
 understood in the context of Debian are discussed below:
@@ -801,7 +852,7 @@ because the dgit git tree does not have a
 directory.)
 .TP
 .BR --quilt=nocheck " | " --no-quilt-fixup
-Do not check whether up source format `3.0 (quilt)' metadata needs
+Do not check whether source format `3.0 (quilt)' metadata needs
 fixing up.  If you use this option and the metadata did in fact need
 fixing up, dgit push will fail.
 .TP
@@ -882,7 +933,7 @@ How to set this up is not yet documented.
 .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
+dgit push looks for single .changes file in the parent directory whose
 filename suggests it is for the right package and version.
 
 If the specified
@@ -1034,6 +1085,24 @@ and the
 .B keyid
 distro config setting.
 .TP
+.RI \fB--curl!:\fR option " | \fB--dput!:\fR" option " |..."
+Specifies an option to remove from the command line for
+a program called by dgit, as for
+\fB--\fR\fIprogram\fI\fB:\fR\fIoption\fR
+(and the same caveats apply).
+
+Any options or arguments exactly identical to
+.I option
+are removed.
+(It is not an error if there were none.)
+
+This can only be used to delete options
+which are always passed by default by dgit,
+or to undo a previous
+\fB--\fR\fIprogram\fI\fB:\fR\fIoption\fR.
+It cannot be used to override option(s) dynamically
+decided on by dgit.
+.TP
 .RI \fB--curl=\fR program " | \fB--dput=\fR" program  " |..."
 Specifies alternative programs to use instead of
 .BR curl ,
@@ -1221,11 +1290,11 @@ One of the values for the command line --clean= option; used if
 .TP
 .BR dgit-distro. \fIdistro\fR .clean-mode-newer
 Like .clean-mode,
-but ignored if the value does not make sense to this version of dgit.
+but ignored if the value is unknown to this version of dgit.
 Setting both .clean-mode and .clean-mode-newer is useful
 to provide a single git config compatible with different dgit versions.
 .TP
-.BR dgit-distro. \fIdistro\fR .quilt-
+.BR dgit-distro. \fIdistro\fR .quilt-mode
 One of the values for the command line --quilt= option; used if
 --quilt is not specified.
 .TP
@@ -1259,10 +1328,10 @@ used, respectively.  Only used if .setup-usermail is not disabled.
 .TP
 .BI dgit-distro. distro .setup-useremail
 Whether to set user.name and user.email in new git trees.
-True by default.  Ignored for dgit setup-setup-useremail, which does it anyway.
+True by default.  Ignored for dgit setup-useremail, which does it anyway.
 .TP
 .BI dgit-distro. distro .setup-mergechangelogs
-Whether to setup a merge driver which uses dpkg-mergechangelogs for
+Whether to set up a merge driver which uses dpkg-mergechangelogs for
 debian/changelog.  True by default.  Ignored for dgit
 setup-mergechangelogs, which does it anyway.
 .TP
@@ -1286,8 +1355,9 @@ Works like
 To pass several options, configure multiple values in git config
 (with git config --add).  The options for
 .BI dgit.default.opts- cmd
+and
 .BI dgit-distro. distro /push.opts- cmd
-and are all used, followed by options from dgit's command line.
+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