.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "dgit-maint-gbp 7" .TH dgit-maint-gbp 7 "Debian Project" "perl v5.28.1" "dgit" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dgit \- tutorial for package maintainers already using git\-buildpackage(1) .SH "INTRODUCTION" .IX Header "INTRODUCTION" This document explains how \fBdgit\fR can be incorporated into a \&\fBgit\-buildpackage\fR\|(1) package-maintenance workflow. This should be read jointly with \fBgit\-buildpackage\fR\|(1)'s documentation. Some reasons why you might want to incorporate \fBdgit\fR into your existing workflow: .IP "\(bu" 4 Benefit from dgit's safety catches. In particular, ensure that your upload always matches exactly your git \s-1HEAD.\s0 .IP "\(bu" 4 Provide a better, more detailed git history to downstream dgit users, such as people using dgit to do an \s-1NMU\s0 (see \fBdgit\-nmu\-simple\fR\|(7) and \&\fBdgit\-user\fR\|(7)). .PP Note that we assume a patches-unapplied repository: the upstream source committed to the git repository is unpatched. \&\fBgit\-buildpackage\fR\|(1) can work with patched-applied repositories, but is normally used with patches-unapplied. .SH "GIT CONFIGURATION" .IX Header "GIT CONFIGURATION" If you have configured an \fIexport-dir\fR in your gbp.conf, you should tell dgit about it: .Sp .Vb 1 \& % git config \-\-global dgit.default.build\-products\-dir /home/spwhitton/build\-area .Ve .PP If you run .Sp .Vb 1 \& % git config dgit.default.quilt\-mode gbp .Ve .PP in your repository, you can omit \fI\-\-gbp\fR wherever it occurs below. .PP Note that this does require that you always work from your gbp master branch, never the dgit patches-applied branch. .SH "BUILDING" .IX Header "BUILDING" You can perform test builds like this: .Sp .Vb 1 \& % dgit [\-\-include\-dirty] gbp\-build [OPTIONS] .Ve .PP where \fI\-\-include\-dirty\fR is needed for testing uncommitted changes, and \&\fI\s-1OPTIONS\s0\fR are any further options to be passed on to \&\fBgbp\-buildpackage\fR\|(1). .PP If you are doing a source-only upload, you do not need to prepare a \&\fI_source.changes\fR, as \fBdgit push-source\fR will take of that on your behalf. .PP If you need to include binaries with your upload, you will probably want to use \fBsbuild\fR\|(1), \fBpbuilder\fR\|(1) or \fBcowbuilder\fR\|(1): .Sp .Vb 1 \& % dgit \-\-rm\-old\-changes \-\-gbp sbuild .Ve .PP replacing 'sbuild' with 'pbuilder' or 'cowbuilder' if appropriate. .PP We use \fI\-\-rm\-old\-changes\fR to ensure that there is exactly one changes file corresponding to this package, so we can be confident we're uploading what we intend (though \fBdgit push\fR will do some safety checks). .PP Note that none of the commands in this section are required to upload with dgit. You can invoke \fBgbp\-buildpackage\fR\|(1), \fBpbuilder\fR\|(1), \&\fBcowbuilder\fR\|(1) and \fBsbuild\fR\|(1) directly. However, the defaults for these tools may leave you with something that dgit will refuse to upload because it doesn't match your git \s-1HEAD.\s0 .PP As a general rule, leave all signing and tagging to dgit. .SH "UPLOADING" .IX Header "UPLOADING" Don't use \fI\-\-git\-tag\fR: \fBdgit push\fR will do this for you. To do a source-only upload: .Sp .Vb 1 \& % dgit \-\-gbp push\-source .Ve .PP or if you need to include binaries, .Sp .Vb 1 \& % dgit \-\-gbp push .Ve .PP This will push your git history to the dgit-repos, but you probably want to follow it up with a push to salsa. .PP You will need to pass \fI\-\-overwrite\fR if the previous upload was not performed with dgit. .PP If this is first ever dgit push of the package, consider passing \&\fI\-\-deliberately\-not\-fast\-forward\fR instead of \fI\-\-overwrite\fR. This avoids introducing a new origin commit into the dgit view of your git history. (This origin commit would represent the most recent non-dgit upload of the package, but this should already be represented in your git history.) .SH "INCORPORATING NMUS" .IX Header "INCORPORATING NMUS" \&\fBdgit pull\fR can't yet incorporate NMUs into patches-unapplied gbp branches. You can just apply the \s-1NMU\s0 diff the traditional way. The next upload will require \fI\-\-overwrite\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBdgit\fR\|(1), \fBdgit\fR\|(7) .SH "AUTHOR" .IX Header "AUTHOR" This tutorial was written and is maintained by Sean Whitton .