X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit.1;h=652ffbb62bcca12b382947e453b3d815aec07d98;hb=5a4dc24f3a020c36a4171d5448cf8a0f50c91f75;hp=eb5b2c11d6702aa1451663747117e08d72913bfe;hpb=248d3ee0c1ff40fc3e7edba70baf7a68f0cc1a55;p=dgit.git diff --git a/dgit.1 b/dgit.1 index eb5b2c11..652ffbb6 100644 --- a/dgit.1 +++ b/dgit.1 @@ -5,15 +5,15 @@ dgit \- git integration with the Debian archive .SH SYNOPSIS .B dgit [\fIdgit\-opts\fP] \fBclone\fP [\fIdgit\-opts\fP] -\fIpackage\fP [\fIsuite\fP] [\fB./\fP\fIdir|\fB/\fP\fIdir] +\fIpackage\fP [\fIsuite\fP] [\fB./\fP\fIdir|\fB/\fP\fIdir\fR] .br .B dgit [\fIdgit\-opts\fP] \fBfetch\fP|\fBpull\fP [\fIdgit\-opts\fP] [\fIsuite\fP] .br .B dgit -[\fIdgit\-opts\fP] \fBbuild\fP -[\fIgit\-buildpackage\-opts\fP|\fIdpkg\-buildpackage\-opts\fp] +[\fIdgit\-opts\fP] \fBbuild\fP|\fBsbuild\fP +[\fIbuild\-opts\fp] .br .B dgit [\fIdgit\-opts\fP] \fBpush\fP [\fIdgit\-opts\fP] @@ -32,8 +32,12 @@ as .B dgit-repos which lives outside the Debian archive (currently, on Alioth). +The usual workflow is: 1. clone or fetch; 2. make and commit changes +in git as desired; 3. run dgit build or dgit sbuild, or generate the +source and binary packages for upload some other way; 4. do +pre-upload tests of the proposed upload; 5. run dgit push. .TP -\fBdgit clone\fR \fIpackage\fP [\fIsuite\fP] [\fB./\fP\fIdir|\fB/\fP\fIdir] +\fBdgit clone\fR \fIpackage\fP [\fIsuite\fP] [\fB./\fP\fIdir|\fB/\fP\fIdir\fR] Consults the archive and dgit-repos to construct the git view of history for .I package @@ -61,7 +65,7 @@ belongs. Consults the archive and git-repos to update the git view of history for a specific suite (and downloads any necessary orig tarballs), and updates the remote tracking branch -.BR remotes/dgit/ \fIsuite\fR. +.BR remotes/dgit/dgit/ \fIsuite\fR. If the current branch is .BI dgit/ suite then dgit fetch defaults to @@ -72,19 +76,27 @@ there. \fBdgit pull\fR [\fIsuite\fP] Does dgit fetch, and then merges the new head of the remote tracking branch -.BI remotes/dgit/ suite +.BI remotes/dgit/dgit/ suite into the current branch. .TP \fBdgit build\fR ... Runs .B git-buildpackage -with some suitable options. Options and argumments after -.B build +with some suitable options. Options and argumments after build will be passed on to git-buildpackage. It is not necessary to use dgit build when using dgit; it is OK to use any approach which ensures that the generated source package corresponds to the relevant git commit. Tagging and signing should be left to dgit push. .TP +\fBdgit sbuild\fR ... +Constructs the source package, and uses sbuild to do a binary +build, and uses mergechanges to merge the source and binary +changes files. Options and argumments 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 +.IR package \fB_\fR version \fB_multi.changes\fR. +.TP .B dgit push Does an `upload', pushing the current HEAD to the archive (as a source package) and to dgit-repos (as git commits). The package must already @@ -106,6 +118,9 @@ dgit quilt-fixup. dgit push always uses the package, suite and version specified in the debian/changelog and the .dsc, which must agree. + +If dgit push fails while uploading, it is fine to simply retry the +dput on the .changes file at your leisure. .TP .B dgit quilt-fixup Looks to see if there is quilt patch metadata left over by dpkg-source @@ -125,7 +140,7 @@ 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 descendant of the state of the archive, as provided by dgit in the remote tracking branch -.BR remotes/dgit/ \fIsuite\fR. +.BR remotes/dgit/dgit/ \fIsuite\fR. If you are lucky the other uploaders have also used dgit and integrated the other relevant git history; if not you can fetch it @@ -160,13 +175,13 @@ to start using dgit. First, do .B dgit fetch (or clone) to obtain a git history representation of what's in the archive and record it in the -.BI remotes/dgit/ suite +.BI remotes/dgit/dgit/ suite tracking branch. Then somehow, using your other git history plus appropriate diffs and cherry picks from the dgit remote tracking branch, construct a git commit whose tree corresponds to the tree to use for the next upload. If that commit-to-be-uploaded is not a descendant of the dig remote tracking branch, check it out and say -.BR "git merge -s ours remotes/dgit/" \fIsuite\fR; +.BR "git merge -s ours remotes/dgit/dgit/" \fIsuite\fR; that tells git that we are deliberately throwing away any differences between what's in the archive and what you intend to upload. Then run @@ -285,18 +300,53 @@ more output (currently, up to -DD is meaningfully different). Specifies a git configuration option. dgit itself is also controlled by git configuration options. .TP -.RI \fB--dget=\fR program |\fB--dput=\fR program |\fB--debsign=\fR program -Specifies alternative programs to use instead of dget, dput -or debsign. -.TP -.RI \fB--dget:\fR option |\fB--dput:\fR option |\fB--debsign:\fR option -Specifies a single additional option to pass to dget, dput or -debsign. Use repeatedly if multiple additional options are required. +.RI \fB--dget=\fR program |\fB--dput=\fR program |... +Specifies alternative programs to use instead of +.BR dget , +.BR dput , +.BR debsign , +.BR dpkg-buildpackage +.BR sbuild , +or +.BR mergechanges . +.TP +.RI \fB--dget:\fR option |\fB--dput:\fR option |... +Specifies a single additional option to pass to +.BR dget , +.BR dput , +.BR debsign , +.BR dpkg-buildpackage +.BR sbuild , +or +.BR mergechanges . +Can be repeated as necessary. +.TP +.BR -d "\fIdistro\fR | " --distro= \fIdistro\fR +Specifies that the suite to be operated on is part of distro +.IR distro . +This overrides the default value found from the git config option +.BR dgit-suite. \fIsuite\fR .distro . +The only effect is that other configuration variables (used +for accessing the archive and dgit-repos) used are +.BR dgit-distro. \fIdistro\fR .* . + +If your suite is part of a distro that dgit already knows about, you +can use this option to make dgit work even if your dgit doesn't know +about the suite. For example, specifying +.B -ddebian +will work when the suite is an unknown suite in the Debian archive. + +To define a new distro it is necessary to define methods and URLs +for fetching (and, for dgit push, altering) a variety of information both +in the archive and in dgit-repos. How to do this is not yet +documented, and currently the arrangements are unpleasant. See +BUGS. .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 -filename suggests it is for the right package and version. +filename suggests it is for the right package and version - or, +if there is a _multi.changes file, dgit uses that. .TP .BI --existing-package= package dgit push needs to canonicalise the suite name. But currently @@ -361,6 +411,8 @@ on the dgit command line. .TP .BI dgit-distro. distro .ssh .TP +.BI dgit-distro. distro .keyid +.TP .BR dgit.default. * for each .BR dgit-distro. \fIdistro\fR . *