chiark / gitweb /
changelog: start 9.14
[dgit.git] / dgit.1
diff --git a/dgit.1 b/dgit.1
index 682562cab85b56fb7ee45215d89de3e39b13bc3c..bec8f975aa5f89f3a0510c83714498a054c5118b 100644 (file)
--- a/dgit.1
+++ b/dgit.1
@@ -192,10 +192,6 @@ passed on to sbuild.
 The output is left in
 .IR package \fB_\fR version \fB_multi.changes\fR.
 .IP
-Note that by default
-sbuild does not build arch-independent packages.
-You probably want to pass \-A, to request those.
-.IP
 Tagging, signing and actually uploading should be left to dgit push.
 .TP
 \fBdgit pbuilder\fR [\fIdebbuildopts\fP]
@@ -631,7 +627,8 @@ 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
-refuse to push.  It may (for Debian, will) be unable to access the git
+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
@@ -642,6 +639,18 @@ include the changes from your working tree.
 This can be useful with build, if you plan to commit later.  (dgit
 push will still ensure that the .dsc you upload and the git tree
 you push are identical, so this option won't make broken pushes.)
+
+Note that this does
+.BR not
+prevent dgit from cleaning your tree, so if the changes in your
+working tree are in the form of untracked files, those might still be
+deleted, especially with --clean=git.
+If you want to include untracked files in the build, you can
+use --clean=none or --clean=dpkg-source[-d]
+in addition to --include-dirty.
+Note that this
+combination can fail if the untracked files are under
+\fIdebian/patches/\fR.
 .TP
 .BR --ignore-dirty
 Deprecated alias for --include-dirty.
@@ -667,6 +676,8 @@ unless you know what you are doing.
 This option is useful if you are the maintainer, and you have
 incorporated NMU changes into your own git workflow in a way that
 doesn't make your branch a fast forward from the NMU.
+It can also be useful when there was an upload made without dgit
+since the most recent upload made with dgit.
 
 This option is also usually necessary
 the first time a package is pushed with dgit push
@@ -695,7 +706,7 @@ of git merge -s ours) to stitch the archive's version into your own
 git history, so that your push is a fast forward from the archive.
 
 (In quilt mode
-.BR gbp ", " dpm " or " unpatched ,
+.BR gbp ", " dpm ", " unpatched " or " baredebian *,
 implying a split between the dgit view and the
 maintainer view, the pseudo-merge will appear only in the dgit view.)
 .TP
@@ -742,7 +753,7 @@ it can mean that
 dgit fails to find necessary git commits.
 .TP
 .BR \-\-save-dgit-view= \fIbranch\fR|\fIref\fR
-Specifies that when a split view quilt mode is in operation,
+Specifies that when split view is in operation,
 and dgit calculates
 (or looks up in its cache)
 a dgit view corresponding to your HEAD,
@@ -753,10 +764,7 @@ so don't specify a branch you want to keep.
 
 This option is effective only with the following operations:
 quilt-fixup; push; all builds.
-And it is only effective with
-\-\-[quilt=]gbp,
-\-\-[quilt=]dpm,
-\-\-quilt=unpatched.
+And it is only effective when split view is actually in operation.
 
 If ref does not start with refs/
 it is taken to be a branch -
@@ -781,12 +789,18 @@ The meanings of
 understood in the context of Debian are discussed below:
 .TP
 .BR --deliberately-not-fast-forward
-Declare that you are deliberately rewinding history.  When pushing to
-Debian, use this when you are making a renewed upload of an entirely
+Declare that you are deliberately rewriting history.
+This could be because your branch is not fast forward from the
+dgit server history,
+or not fast forward from a locally-synthesised dsc import.
+
+When pushing to Debian,
+use this only when you are making a renewed upload of an entirely
 new source package whose previous version was not accepted for release
-from NEW because of problems with copyright or redistributibility.
+from NEW because of problems with copyright or redistributibility;
+or, exceptionally, for the very first upload with dgit.
 
-In split view quilt modes,
+When split view is in operation,
 this also prevents the construction by dgit of a pseudomerge
 to make the dgit view fast forwarding.
 Normally only one of
@@ -807,7 +821,7 @@ never-accepted) versions in the git history of your current push, were
 rejected by ftpmaster for copyright or redistributability reasons.
 .TP
 .BR --deliberately-fresh-repo
-Declare that you are deliberately rewinding history and want to
+Declare that you are deliberately rewriting history and want to
 throw away the existing repo.  Not relevant when pushing to Debian,
 as the Debian server will do this automatically when necessary.
 .TP
@@ -826,7 +840,7 @@ with as ancestor a patches-applied branch.
 .BR --quilt=auto
 When fixing up source format `3.0 (quilt)' metadata, prefer to
 generate a linear patch stack
-(as with --quilt=auto)
+(as with --quilt=linear)
 but if that doesn't seem possible,
 try to generate a single squashed patch for all the changes made in git
 (as with --quilt=smash).
@@ -856,13 +870,17 @@ 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
-.BR -- [ quilt= ] gbp " | " -- [ quilt= ] dpm " | " --quilt=unapplied
+.BR -- [ quilt= ] gbp " | " -- [ quilt= ] dpm " | " --quilt=unapplied " | " -- [ quilt= ] baredebian [ +git | +tarball ]
 Tell dgit that you are using a nearly-dgit-compatible git branch,
 aka a
 .BR "maintainer view" ,
 and
 do not want your branch changed by dgit.
 
+These quilt modes are known as
+.BR "splitting quilt modes" .
+See --split-view, below.
+
 .B --gbp
 (short for
 .BR --quilt=gbp )
@@ -884,7 +902,32 @@ specifies that your HEAD is a patches-unapplied git branch (and
 that any changes to upstream .gitignore files are represented as
 patches in debian/patches).
 
-With --quilt=gbp|dpm|unapplied,
+.B --quilt=baredebian
+(or its alias
+.BR --quilt=baredebian+git )
+specifies that your HEAD contains only a debian/ directory,
+with any changes to upstream files represented as
+patches in debian/patches.
+The upstream source must be available in git,
+by default, in a suitably named git tag;
+see --upstream-commitish.
+In this mode, dgit cannot check that
+all edited upstream files are properly represented as patches:
+dgit relies on
+debian/patches being correct.
+
+.B --quilt=baredebian+tarball
+is like --quilt=baredebian,
+but is used when there is no appropriate upstream git history.
+To construct the dgit view,
+dgit will import your orig tarballs' contents into git.
+In this mode, dgit cannot check that
+the upstream parts of your upload correspond to what you intend:
+dgit relies on
+the right orig tarball(s) existing, and
+debian/patches being correct.
+
+With --quilt=gbp|dpm|unapplied|baredebian*,
 dgit push (or precursors like quilt-fixup and build) will automatically
 generate a conversion of your git branch into the right form.
 dgit push will push the
@@ -931,6 +974,42 @@ for fetching (and, for dgit push, altering) a variety of information both
 in the archive and in dgit-repos.
 How to set this up is not yet documented.
 .TP
+.BR \-\-split-view=auto | always | never
+Controls whether dgit operates a split view,
+separating your own branch (as Debian maintainer)
+from that shown to users of dgit clone and dgit fetch.
+
+When split view is in operation
+dgit will not make or merge any commits onto your own branch.
+Specifically, only the dgit view will contain
+dgit's pseudomerges,
+which bring into the git history previous uploads made with dgit push,
+and any commits in debian/patches required
+to make a correct `3.0 (quilt)' source package.
+
+.B auto
+is the default, and splits the view only when needed:
+i.e., when you are working with a `3.0 (quilt)' source package
+and a splitting quilt mode:
+\-\-[quilt=]gbp, dpm, unpatched or baredebian*.
+
+.B always
+splits the view regardless of the source format and the quilt mode.
+
+.B never
+will cause dgit to fail if split view is needed.
+
+When split view is in operation, the dgit view is visible
+in your local git clone,
+but only in refs specific to dgit:
+notably
+.BI remotes/dgit/dgit/ suite
+and
+.BR archive/ \fIdistro\fR / \fIversion\fR.
+
+Note that split view does not affect dgit fetch,
+and is not compatible with dgit pull.
+.TP
 .BI \-C changesfile
 Specifies the .changes file which is to be uploaded.  By default
 dgit push looks for a single .changes file in the parent directory whose
@@ -945,6 +1024,14 @@ otherwise, the changes file is expected in that directory (by
 default, in
 .BR .. ).
 .TP
+.BI \-\-upstream-commitish= upstream
+For use with --quilt=baredebian only.
+Specifies the commit containing the upstream source.
+This commit must be identical to your .orig tarball.
+The default is to look for one of the git tags
+.IB U " v" U " upstream/" U
+(in that order), where U is the upstream version.
+.TP
 .B \-\-rm-old-changes
 When doing a build, delete any changes files matching
 .IB package _ version _*.changes
@@ -983,19 +1070,14 @@ Do not delete the destination directory if clone fails.
 Generates a DEP-14 tag (eg
 .BR debian/ \fIversion\fR)
 as well as a dgit tag (eg
-.BR archive/debian/ \fIversion\fR)
-where possible.  This is the default.
+.BR archive/debian/ \fIversion\fR).
+This is the default.
 .TP
 .BI --no-dep14tag
-Do not generate a DEP-14 tag, except in split quilt view mode.
-(On servers where only the old tag format is supported,
-the dgit tag will have the DEP-14 name.
-This option does not prevent that.)
+Do not generate a DEP-14 tag, except when split view is in operation.
 .TP
-.BI --dep14tag-always
-Insist on generating a DEP-14 tag
-as well as a dgit tag.
-If the server does not support that, dgit push will fail.
+.BI --always-dep14tag
+Obsolete alias for --dep14tag, retained for compatibility.
 .TP
 .BI -D
 Prints debugging information to stderr.  Repeating the option produces
@@ -1214,6 +1296,13 @@ The result is a fresh import,
 discarding the git history
 that the person who pushed that .dsc was working with.
 .TP
+.B \-\-force-reusing-version
+Carry on even though this involves reusing a version number
+of a previous push or upload.
+It is normally best to give different versions different numbers.
+Some servers (including, usually, the Debian server)
+will reject attempts to reuse or replace already-pushed versions.
+.TP
 .B \-\-force-uploading-binaries
 Carry on and
 upload binaries
@@ -1250,6 +1339,12 @@ Force on or off the use of the absurd git-apply emulation
 when running gbp pq import
 when importing a package from a .dsc.
 See Debian bug #841867.
+.TP
+.BR \-\-for\-push
+Override the dgit-distro.distro.readonly configuration setting,
+to specify that we have read/write access
+and should use the corresponding git and achieve access approach
+even if the operation is a read-only one.
 .SH CONFIGURATION
 dgit can be configured via the git config system.
 You may set keys with git-config (either in system-global or per-tree
@@ -1275,6 +1370,10 @@ may be a glob pattern.
 .TP
 .BI dgit.default.distro " distro"
 The default distro for an unknown suite.
+
+This is only used if no
+.BI /usr/share/distro-info/ somedistro .csv
+mentions the specified suite.
 .TP
 .BI dgit.default.default-suite " suite"
 The default suite (eg for clone).
@@ -1298,6 +1397,8 @@ to provide a single git config compatible with different dgit versions.
 One of the values for the command line \-\-quilt= option; used if
 \-\-quilt is not specified.
 .TP
+.BR dgit-distro. \fIdistro\fR .split-view
+.TP
 .BR dgit-distro. \fIdistro\fR .rm-old-changes
 Boolean, used if neither \-\-rm-old-changes nor \-\-no-rm-old-changes
 is specified.  The default is not to remove.
@@ -1392,7 +1493,7 @@ or when pushing and
 .TP
 .BI dgit-distro. distro .git-create " " ssh-cmd | true
 .TP
-.BR dgit-distro. \fIdistro\fR .archive-query " " ftpmasterapi: " | " madison: "\fIdistro\fR | " dummycat: "\fI/path\fR  | " sshpsql: \fIuser\fR @ \fIhost\fR : \fIdbname\fR
+.BR dgit-distro. \fIdistro\fR .archive-query " " ftpmasterapi: " | " madison: "\fIdistro\fR | " dummycat: "\fI/path\fR  | " sshpsql: \fIuser\fR @ \fIhost\fR : \fIdbname\fR " " | " aptget:"
 .TP
 .BR dgit-distro. \fIdistro\fR .archive-query- ( url | tls-key | curl-ca-args )
 .TP
@@ -1402,7 +1503,7 @@ or when pushing and
 .TP
 .BI dgit-distro. distro .dgit-tag-format
 .TP
-.BR dgit-distro. \fIdistro\fR .dep14tag " " want | no | always
+.BR dgit-distro. \fIdistro\fR .dep14tag " " want | no [| always ]
 .TP
 .BI dgit-distro. distro .ssh
 .TP
@@ -1440,7 +1541,7 @@ also the \-\-ssh= and \-\-ssh: options.
 Default git user.email and user.name for new trees.  See
 .BR "dgit setup-new-tree" .
 .TP
-.BR gpg ", " dpkg- "..., " debsign ", " git ", " curl ", " dput ", " LWP::UserAgent
+.BR gpg ", " dpkg- "..., " debsign ", " git ", [" lib ] curl ", " dput
 and other subprograms and modules used by dgit are affected by various
 environment variables.  Consult the documentation for those programs
 for details.