.
.SH SYNOPSIS
.B dgit
-[\fIdgit\-options\fP] \fBclone\fP [\fIdgit\-options\fP]
-\fIpackage\fP [\fIsuite\fP] [\fB./\fP\fIdest-dir|\fB/\fP\fIdest-dir]
+[\fIdgit\-opts\fP] \fBclone\fP [\fIdgit\-opts\fP]
+\fIpackage\fP [\fIsuite\fP] [\fB./\fP\fIdir|\fB/\fP\fIdir]
.br
.B dgit
-[\fIdgit\-options\fP] \fBfetch\fP|\fBpull\fP [\fIdgit\-options\fP]
+[\fIdgit\-opts\fP] \fBfetch\fP|\fBpull\fP [\fIdgit\-opts\fP]
[\fIsuite\fP]
.br
.B dgit
-[\fIdgit\-options\fP] \fBbuild\fP
-[\fIgit\-buildpackage\-options\fP|\fIdpkg\-buildpackage\-options\fp]
+[\fIdgit\-opts\fP] \fBbuild\fP
+[\fIgit\-buildpackage\-opts\fP|\fIdpkg\-buildpackage\-opts\fp]
.br
.B dgit
-[\fIdgit\-options\fP] \fBpush\fP [\fIdgit\-options\fP]
+[\fIdgit\-opts\fP] \fBpush\fP [\fIdgit\-opts\fP]
[\fIsuite\fP]
.SH DESCRIPTION
.B dgit
treats the Debian archive as a version control system, and
bidirectionally gateways between the archive and git. The git view of
the package can contain the usual upstream git history, and will be
-augmented by commits representing uploads done without using dgit.
-This git history is stored in a canonical location
+augmented by commits representing uploads done by other developers not
+using dgit. This git history is stored in a canonical location known
+as
.B dgit-repos
-which lives outside the Debian archive.
+which lives outside the Debian archive (currently, on Alioth).
.B dgit clone
and
You may use any suitable git workflow with dgit, provided you
satisfy dgit's requirements:
-dgit maintains what looks a bit like a remote called
+dgit maintains a pseudo-remote called
.BR dgit ,
with one branch per suite. This remote cannot be used with
plain git.
The
.B dgit-repos
repository for each package contains one ref per suite named
-\fBdrefs/git/\fR\fIsuite\fR. These should be pushed to only by
+\fBrefs/dgit/\fR\fIsuite\fR. These should be pushed to only by
dgit. They are fast forwarding. Each push on this branch
corresponds to an upload (or attempted upload).
current dgit/suite tip in dgit-repos.
Uploads made by dgit contain an additional field
-.B Vcs-Git-Master
+.B Vcs-Dgit-Master
in the source package .dsc. (This is added by dgit push.)
This specifies a commit (an ancestor of the dgit/suite
branch) whose tree is identical to the unpacked source upload.
.BI -p package
Specifies that we should process source package
.I package
-rather than looking in debian/control. Valid with dgit fetch
-and dgit pull, only.
+rather than looking in debian/control or debian/changelog.
+Valid with dgit fetch and dgit pull, only.
.TP
.BI -D
-Spew debugging information to stderr.
+Prints debugging information to stderr. Repeating the option produces
+more output (currently, up to -DD is meaningfully different).
.TP
.BI -c name = value
Specifies a git configuration option. dgit itself is also controlled
.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
-filename suggests they it is for the right package and version.
+filename suggests it is for the right package and version.
.SH CONFIGURATION
dgit looks at the following git config keys to control its behaviour.
You may set them with git-config (either in system-global or per-tree
.TP
.BI dgit-distro. distro .git-create
.TP
+.BI dgit-distro. distro .upload-host
+.TP
+.BI dgit-distro. distro .mirror
+.TP
+.BI dgit-distro. distro .archive-query
+.TP
.BI dgit-distro. distro .ssh
.TP
.BR dgit.default. *
sane way to find the path in the archive pool of the .dsc for a
particular suite.
-Debian Policy needs to be updated to describe the new Vcs-Git-Master
+We should be using some kind of vhost/vpath setup for the git repos on
+alioth, so that they can be moved later if and when this turns out to
+be a good idea.
+
+Debian Policy needs to be updated to describe the new Vcs-Dgit-Master
field (and to specify that it is an RC bug for that field to refer
to an unavailable commit).
+dgit cannot currently introduce a package into a suite.
+
dgit push should perhaps do `git push origin', or something similar,
by default.
currently any mechanism for determining and honouring the archive's
ideas about access control. Currently only DDs can push.
-dgit's representation of format `3.0 (quilt)' source packages (even if
-they were supported) would not represent the patch stack. Currently
-the patch series representation cannot round trip through the archive.
-Ideally dgit would represent a quilty package with an origin commit of
-some kind followed by the patch stack as a series of commits followed
-by a pseudo-merge (to make the branch fast-forwarding). This would
-also mean a new `dgit rebase-prep' command or some such to turn such a
-fast-forwarding branch back into a rebasing patch stack, and a `force'
-option to dgit push (perhaps enabled automatically) which will make
-the required pseudo-merge.
+dgit's representation of format `3.0 (quilt)' source packages does not
+represent the patch stack. Currently the patch series representation
+cannot round trip through the archive. Ideally dgit would represent a
+quilty package with an origin commit of some kind followed by the
+patch stack as a series of commits followed by a pseudo-merge (to make
+the branch fast-forwarding). This would also mean a new `dgit
+rebase-prep' command or some such to turn such a fast-forwarding
+branch back into a rebasing patch stack, and a `force' option to dgit
+push (perhaps enabled automatically by a note left by rebase-prep)
+which will make the required pseudo-merge.
dgit's handling of .orig.tar.gz is not very sophisticated. Ideally
the .orig.tar.gz could be transported via the git repo as git tags.
+Doing this is made more complicated by the possibility of a `3.0
+(quilt)' package with multiple .orig tarballs.
The error messages are often unhelpfully terse and tend to refer to
line numbers in dgit.