X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit.1;h=d23dde01384c166d71717f2955c104335a3f699d;hp=d34231fd8d2bd94f70d23e708f1375c3f903d932;hb=fe1e06de2358fc0788604ada99baa5752c1e0e62;hpb=a0f8574f94712304142296a28251c222dbb3f203 diff --git a/dgit.1 b/dgit.1 index d34231fd..d23dde01 100644 --- 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 a 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 , @@ -1219,6 +1288,12 @@ the default value used if there is no distro-specific setting. One of the values for the command line --clean= option; used if --clean is not specified. .TP +.BR dgit-distro. \fIdistro\fR .clean-mode-newer +Like .clean-mode, +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-mode One of the values for the command line --quilt= option; used if --quilt is not specified. @@ -1253,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 @@ -1280,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