1dgit(1) dgit dgit(1)
2
3
4
6 dgit - git integration with the Debian archive
7
9 dgit [dgit-opts] clone [dgit-opts] package [suite] [./dir|/dir]
10 dgit [dgit-opts] fetch|pull [dgit-opts] [suite]
11 dgit [dgit-opts] build|sbuild|build-source [build-opts]
12 dgit [dgit-opts] pbuilder|cowbuilder [debbuildopts]
13 dgit [dgit-opts] push|push-source [dgit-opts] [suite]
14 dgit [dgit-opts] rpush build-host:build-dir [push args...]
15 dgit [dgit-opts] action ...
16
18 dgit allows you to treat the Debian archive as if it were a git reposi‐
19 tory. Conversely, it allows Debian to publish the source of its pack‐
20 ages as git branches, in a format which is directly useable by ordinary
21 people.
22
23 This is the command line reference. Please read the tutorial(s):
24
25 dgit-user(7) for users: edit, build and share packages
26 dgit-nmu-simple(7) for DDs: do a straightforward NMU
27 dgit-maint-native(7) for maintainers of Debian-native packages
28 dgit-maint-debrebase(7) for maintainers: a pure-git rebasish workflow
29 dgit-maint-merge(7) for maintainers: a pure-git merging workflow
30 dgit-maint-gbp(7) for maintainers already using git-buildpackage
31 dgit-sponsorship(7) for sponsors and sponsored contributors
32 dgit-downstream-dsc(7) setting up dgit push for a new distro
33
34 See dgit(7) for detailed information about the data model, common prob‐
35 lems likely to arise with certain kinds of package, etc.
36
38 dgit clone package [suite] [./dir|/dir]
39 Consults the archive and dgit-repos to construct the git view of
40 history for package in suite (sid by default) in a new directory
41 (named ./package by default); also, downloads any necessary orig
42 tarballs.
43
44 The suite's git tip is left on the local branch dgit/suite ready
45 for work, and on the corresponding dgit remote tracking branch.
46 The origin remote will be set up to point to the package's dgit-
47 repos tree for the distro to which suite belongs.
48
49 suite may be a combination of several underlying suites in the
50 form mainsuite,subsuite...; see COMBINED SUITES in dgit(7).
51
52 For your convenience, the vcs-git remote will be set up from the
53 package's Vcs-Git field, if there is one - but note that in the
54 general case the history found there may be different to or even
55 disjoint from dgit's view. (See also dgit update-vcs-git.)
56
57 dgit fetch [suite]
58 Consults the archive and git-repos to update the git view of
59 history for a specific suite (and downloads any necessary orig
60 tarballs), and updates the remote tracking branch re‐
61 motes/dgit/dgit/suite. If the current branch is dgit/suite then
62 dgit fetch defaults to suite; otherwise it parses de‐
63 bian/changelog and uses the suite specified there. suite may be
64 a combined suite, as for clone.
65
66 dgit pull [suite]
67 Does dgit fetch, and then merges the new head of the remote
68 tracking branch remotes/dgit/dgit/suite into the current branch.
69
70 dgit checkout suite
71 Checks out the local branch dgit/suite.
72
73 If the branch does not exist, dgit checkout creates it, and sets
74 it up the same way as dgit clone would. In that case, if the
75 archive remote tracking branch does not exist, dgit checkout
76 will do a dgit fetch first.
77
78 NB: dgit checkout will only do a fetch if it has to. If you al‐
79 ready have the suite branch, and want to merge your branch with
80 updates from the archive, use dgit pull.
81
82 dgit checkout will normally need to access the archive server,
83 to canonicalise the provided suite name. The exception is if
84 you specify the canonical name, and the branch (or tracking
85 branch) already exists.
86
87 dgit build ...
88 Runs dpkg-buildpackage with some suitable options. Options and
89 arguments after build will be passed on to dpkg-buildpackage.
90 It is not necessary to use dgit build when using dgit; it is OK
91 to use any approach which ensures that the generated source
92 package corresponds to the relevant git commit.
93
94 Tagging, signing and actually uploading should be left to dgit
95 push.
96
97 dgit's build operations access the network, to get the -v option
98 right. See -v, below.
99
100 dgit build-source ...
101 Builds the source package, and a changes file for a prospective
102 source-only upload, using dpkg-source. The output is left in
103 package_version.dsc and package_version_source.changes.
104
105 Tagging, signing and actually uploading should be left to dgit
106 push-source, or dgit push.
107
108 dgit clean
109 Cleans the current working tree (according to the --clean= op‐
110 tion in force).
111
112 dgit update-vcs-git [suite|.] [--] [git fetch options]
113 dgit update-vcs-git [suite|.] -
114 Sets up, or updates the url of, the vcs-git remote, and (unless
115 - was specified) runs git fetch on it.
116
117 By default, the Vcs-Git field of the .dsc from Debian sid is
118 used, as that is probably most up to date. Another suite may be
119 specified, or . to indicate that the Vcs-Git of the cwd's de‐
120 bian/control should be used instead.
121
122 dgit help
123 Print a usage summary.
124
125 dgit sbuild ...
126 Constructs the source package, uses sbuild to do a binary build,
127 and uses mergechanges to merge the source and binary changes
128 files. Options and arguments after sbuild will be passed on to
129 sbuild. The output is left in package_version_multi.changes.
130
131 Tagging, signing and actually uploading should be left to dgit
132 push.
133
134 dgit pbuilder [debbuildopts]
135 Constructs the source package, uses pbuilder to do a binary
136 build, and uses mergechanges to merge the source and binary
137 changes files. The output is left in package_ver‐
138 sion_multi.changes.
139
140 You should ensure that your dgit --build-products-dir setting
141 matches your pbuilder --buildresult.
142
143 The debbuildopts are passed to pbuilder using its --debbuildopts
144 option. If you want to pass other options to pbuilder, use the
145 --pbuilder: dgit option as described below (remember that dgit
146 options should appear between dgit and pbuilder).
147
148 You should ensure that in your pbuilderrc you do not have the
149 setting SOURCE_ONLY_CHANGES=yes as this may cause trouble.
150
151 dgit cowbuilder [debbuildopts]
152 Like dgit pbuilder, but uses cowbuilder instead of pbuilder.
153
154 dgit gbp-build ...
155 Runs git-buildpackage with some suitable options. Options and
156 arguments after gbp-build will be passed on to git-buildpackage.
157
158 By default this uses --quilt=gbp, so HEAD should be a git-build‐
159 package style branch, not a patches-applied branch.
160
161 Tagging, signing and actually uploading should be left to dgit
162 push.
163
164 dgit push-built [suite]
165 Does an `upload', pushing the current HEAD to the archive (as a
166 source package) and to dgit-repos (as git commits). The package
167 must already have been built ready for upload, with the .dsc and
168 .changes left in the parent directory. It is normally best to
169 do the build with dgit too (eg with dgit sbuild): some existing
170 build tools pass unhelpful options to dpkg-source et al by de‐
171 fault, which can result in the built source package not being
172 identical to the git tree.
173
174 In more detail: dgit push checks that the current HEAD corre‐
175 sponds to the .dsc. It then pushes the HEAD to the suite's
176 dgit-repos branch, adjusts the .changes to include any .origs
177 which the archive lacks and exclude .origs which the archive has
178 (so -sa and -sd are not needed when building for dgit push),
179 makes a signed git tag, edits the .dsc to contain the dgit meta‐
180 data field, runs debsign to sign the upload (.dsc and .changes),
181 pushes the signed tag, and finally uses dput to upload the
182 .changes to the archive.
183
184 dgit push always uses the package, suite and version specified
185 in the debian/changelog and the .dsc, which must agree. If the
186 command line specifies a suite then that must match too.
187
188 When used on a git-debrebase branch, dgit calls git-debrebase to
189 prepare the branch for source package upload and push.
190
191 dgit push-source [suite]
192 Without -C, builds a source package and dgit pushes it. Saying
193 dgit push-source is like saying "update the source code in the
194 archive to match my git HEAD, and let the autobuilders do the
195 rest."
196
197 With -C, performs a dgit push, additionally ensuring that no bi‐
198 nary packages are uploaded.
199
200 dgit rpush build-host:build-dir [push args...]
201 Pushes the contents of the specified directory on a remote ma‐
202 chine. This is like running dgit push on build-host with build-
203 dir as the current directory; however, signing operations are
204 done on the invoking host. This allows you to do a push when
205 the system which has the source code and the build outputs has
206 no access to the key:
207
208
209 1. Clone on build host (dgit clone)
210 2. Edit code on build host (edit, git commit)
211 3. Build package on build host (dgit build)
212 4. Test package on build host or elsewhere (dpkg -i, test)
213 5. Upload by invoking dgit rpush on host with your GPG key.
214
215 However, the build-host must be able to ssh to the dgit repos.
216 If this is not already the case, you must organise it sepa‐
217 rately, for example by the use of ssh agent forwarding.
218
219 The remaining arguments are treated just as dgit push would han‐
220 dle them.
221
222 build-host and build-dir can be passed as separate arguments;
223 this is assumed to be the case if the first argument contains no
224 : (except perhaps one in [ ], to support IPv6 address literals).
225
226 You will need similar enough versions of dgit on the build-host
227 and the invocation host. The build-host needs gnupg installed,
228 with your public key in its keyring (but not your private key,
229 obviously).
230
231 dgit push ...
232 Configurable alias for dgit push-built, which will change to
233 mean dgit push, and therefore currently generates a warning.
234
235 The behaviour is controlled by the dgit.default.push-subcmd git
236 config option:
237
238 source runs dgit push-source future default
239 built and runs dgit push-built
240 built,warn warns, and runs dgit push-built current default
241 reject fails
242
243 That setting can safely be passed to older dgit (via -c); the
244 value built will be supported indefinitely. This should be used
245 in scripts that need to work with both old versions of dgit
246 (that don't have push-built) and new versions (where push-source
247 is the default).
248
249 dgit setup-new-tree
250 Configure the current working tree the way that dgit clone would
251 have set it up. Like running dgit setup-useremail, setup-
252 mergechangelogs and setup-gitattributes (but only does each
253 thing if dgit is configured to do it automatically). You can
254 use these in any git repository, not just ones used with the
255 other dgit operations. Does not run update-vcs-git (as that re‐
256 quires Debian packaging information).
257
258 dgit setup-useremail
259 Set the working tree's user.name and user.email from the distro-
260 specific dgit configuration (dgit-distro.distro.user-name and
261 .user-email), or DEBFULLNAME or DEBEMAIL.
262
263 dgit setup-mergechangelogs
264 Configures a git merge helper for the file debian/changelog
265 which uses dpkg-mergechangelogs.
266
267 dgit setup-gitattributes
268 Set up the working tree's .git/info/attributes to disable all
269 transforming attributes for all files. This is done by defining
270 a macro attribute, dgit-defuse-attrs, and applying it to *. For
271 why, see GITATTRIBUTES in dgit(7). Note that only attributes
272 affecting the working tree are suppressed. git-archive may re‐
273 main exciting.
274
275 If there is an existing macro attribute line [attr]dgit-defuse-
276 attrs in .git/info/attributes, but it is insufficient, because
277 it was made by an earlier version of dgit and git has since in‐
278 troduced new transforming attributes, this modifies the macro to
279 disable the newer transformations.
280
281 (If there is already a macro attribute line [attr]dgit-defuse-
282 attrs in .git/info/attributes which does what dgit requires
283 (whatever files it effects), this operation does nothing fur‐
284 ther. This fact can be used to defeat or partially defeat dgit
285 setup-gitattributes and hence dgit setup-new-tree.)
286
287 dgit quilt-fixup
288 `3.0 (quilt)' format source packages need changes representing
289 not only in-tree but also as patches in debian/patches. dgit
290 quilt-fixup checks whether this has been done; if not, dgit will
291 make appropriate patches in debian/patches and also commit the
292 resulting changes to git.
293
294 This is normally done automatically by dgit build and dgit push.
295
296 dgit will try to turn each relevant commit in your git history
297 into a new quilt patch. dgit cannot convert nontrivial merges,
298 or certain other kinds of more exotic history. If dgit can't
299 find a suitable linearisation of your history, by default it
300 will fail, but you can ask it to generate a single squashed
301 patch instead.
302
303 When used with a git-debrebase branch, dgit will ask git-debre‐
304 base to prepare patches. However, dgit can make patches in some
305 situations where git-debrebase fails, so dgit quilt-fixup can be
306 useful in its own right. To always use dgit's own patch genera‐
307 tor instead of git-debrebase make-patches, pass --git-debre‐
308 base=true to dgit.
309
310 See FORMAT 3.0 (QUILT) in dgit(7).
311
312 dgit import-dsc [sub-options] ../path/to/.dsc [+|..]branch
313 Import a Debian-format source package, specified by its .dsc,
314 into git, the way dgit fetch would do.
315
316 This does about half the work of dgit fetch: it will convert the
317 .dsc into a new, orphan git branch. Since dgit has no access to
318 a corresponding source package archive or knowledge of the his‐
319 tory it does not consider whether this version is newer than any
320 previous import or corresponding git branches; and it therefore
321 does not make a pseudomerge to bind the import into any existing
322 git history.
323
324 Because a .dsc can contain a Dgit field naming a git commit
325 (which you might not have), and specifying where to find that
326 commit (and any history rewrite table), import-dsc might need
327 online access. If this is a problem (or dgit's efforts to find
328 the commit fail), consider --no-chase-dsc-distro or --force-im‐
329 port-dsc-with-dgit-field.
330
331 There is only one sub-option:
332
333 --require-valid-signature causes dgit to insist that the signa‐
334 ture on the .dsc is valid (using the same criteria as dpkg-
335 source -x). Otherwise, dgit tries to verify the signature but
336 the outcome is reported only as messages to stderr.
337
338 If branch is prefixed with + then if it already exists, it will
339 be simply overwritten, no matter its existing contents. If
340 branch is prefixed with .. then if it already exists and dgit
341 actually imports the dsc (rather than simply reading the git
342 commit out of the Dgit field), dgit will make a pseudomerge so
343 that the result is necessarily fast forward from the existing
344 branch. Otherwise, if branch already exists, dgit will stop
345 with an error message.
346
347 If branch does not start with refs/, refs/heads/ is prepended.
348
349 dgit version
350 Prints version information and exits.
351
352 dgit clone-dgit-repos-server destdir
353 Tries to fetch a copy of the source code for the dgit-repos-
354 server, as actually being used on the dgit git server, as a git
355 tree.
356
357 dgit print-dgit-repos-server-source-url
358 Prints the url used by dgit clone-dgit-repos-server. This is
359 hopefully suitable for use as a git remote url. It may not be
360 useable in a browser.
361
362 dgit print-dpkg-source-ignores
363 Prints the -i and -I arguments which must be passed to dpkg-
364 souce to cause it to exclude exactly the .git directory and
365 nothing else. The separate arguments are unquoted, separated by
366 spaces, and do not contain spaces.
367
368 dgit print-unapplied-treeish
369 Constructs a tree-ish approximating the patches-unapplied state
370 of your 3.0 (quilt) package, and prints the git object name to
371 stdout. This requires appropriate .orig tarballs. This tree
372 object is identical to your .origs as regards upstream files.
373 The contents of the debian subdirectory is not interesting and
374 should not be inspected; except that debian/patches will be
375 identical to your HEAD.
376
377 To make this operate off-line, the access configuration key
378 which is used to determine the build-products-dir is the un‐
379 canonicalised version of the suite name from the changelog, or
380 (of course) dgit.default.build-products-dir. See ACCESS CONFIG‐
381 URATION, below.
382
383 This function is primarily provided for the benefit of git-de‐
384 brebase.
385
387 -kkeyid
388 Use keyid for signing the tag and the upload. The default comes
389 from the distro's keyid config setting (see CONFIGURATION, be‐
390 low), or failing that, the uploader trailer line in de‐
391 bian/changelog.
392
393 --no-sign
394 does not sign tags or uploads (meaningful only with push).
395
396
397 -ppackage
398 Specifies that we should process source package package rather
399 than looking in debian/control or debian/changelog. Valid with
400 dgit fetch and dgit pull, only.
401
402 --clean=git | -wg
403 Use git clean -xdf to clean the working tree, rather than run‐
404 ning the package's rules clean target.
405
406 This will delete all files which are not tracked by git. (In‐
407 cluding any files you forgot to git add.)
408
409 --clean=... options other than dpkg-source are useful when the
410 package's clean target is troublesome, or to avoid needing the
411 build-dependencies.
412
413 dgit will only actually clean the tree if it needs to (because
414 it needs to build the source package or binaries from your work‐
415 ing tree). Otherwise it will just check that there are no un‐
416 tracked unignored files. See --clean=git[-ff],always, below.
417
418 --clean=git-ff | -wgf
419 Use git clean -xdff to clean the working tree. Like git clean
420 -xdf but it also removes any subdirectories containing different
421 git trees (which only unusual packages are likely to create).
422
423 --clean=git[-ff],always | -wga | -wgfa
424 Like --clean=git, but always does the clean and not just a
425 check, deleting any untracked un-ignored files.
426
427 --clean=check | --clean=check,ignores | -wc | -wci
428 Merely check that the tree is clean (does not contain uncommit‐
429 ted files). Avoids running rules clean, and can avoid needing
430 the build-dependencies.
431
432 With ,ignores or -wci, untracked files covered by .gitignore are
433 tolerated, so only files which show up as ? in git status (ie,
434 ones you maybe forgot to git add) are treated as a problem.
435
436 --clean=none | -wn
437 Do not clean the tree, nor check that it is clean. Avoids run‐
438 ning rules clean, and can avoid needing the build-dependencies.
439 If there are files which are not in git, or if the build creates
440 such files, a subsequent dgit push will fail.
441
442 --clean=dpkg-source[-d] | -wd | -wdd
443 Use dpkg-buildpackage to do the clean, so that the source pack‐
444 age is cleaned by dpkg-source running the package's clean tar‐
445 get. --clean=dpkg-source is the default.
446
447 Without the extra d, requires the package's build dependencies.
448
449 With ...-d or -wdd, the build-dependencies are not checked (due
450 to passing -d to dpkg-buildpackage), which violates policy, but
451 may work in practice.
452
453 The rules clean target will only be run if it is needed: when
454 dgit is going to build source or binary packages from your work‐
455 ing tree, rather than from your git branch (for example because
456 of --include-dirty or because the binary package build uses your
457 working tree).
458
459 In all cases, dgit will check that there are (after rules clean,
460 if applicable) no untracked un-ignored files, in case these are
461 files you forgot to git add. (Except that this check is not
462 done for a `3.0 (quilt)' package when dgit has to apply patches,
463 dirtily, to the working tree.) If your package does not have a
464 good .gitignore you will probably need --clean=dpkg-source,no-
465 check aka -wdn.
466
467 --clean=dpkg-source[-d],no-check | -wdn | -wddn
468 Like --clean=dpkg-source, but does not care about untracked un-
469 ignored files.
470
471 --clean=dpkg-source[-d],all-check | -wda | -wdda
472 Like --clean=dpkg-source, but fails even on ignored untracked
473 files. This could perhaps be used to detect bugs in your rules
474 clean target.
475
476 -N | --new
477 The package is, or may be, new in this suite. Without this,
478 dgit will refuse to push. Needing --new is not unusual; for ex‐
479 ample, it is frequently needed for uploading to Debian experi‐
480 mental.
481
482 Note that dgit may be unable to access the git history for an
483 entirely new package which has not been accepted by the archive.
484 So for an entirely new package you need to properly coordinate
485 with anyone else who might upload.
486
487 --include-dirty
488 Do not complain if the working tree does not match your git
489 HEAD, and when building, include the changes from your working
490 tree. This can be useful with build, if you plan to commit
491 later. (dgit push will still ensure that the .dsc you upload
492 and the git tree you push are identical, so this option won't
493 make broken pushes.)
494
495 Note that this does not prevent dgit from cleaning your tree, so
496 if the changes in your working tree are in the form of untracked
497 files, those might still be deleted, especially with
498 --clean=git. If you want to include untracked files in the
499 build, you can use --clean=none or --clean=dpkg-source[-d] in
500 addition to --include-dirty. Note that this combination can
501 fail if the untracked files are under debian/patches/.
502
503 --ignore-dirty
504 Deprecated alias for --include-dirty.
505
506 --overwrite[=previous-version]
507 Declare that your HEAD really does contain all the (wanted)
508 changes from all versions listed in its changelog; or, all
509 (wanted) changes from previous-version. This promise is needed
510 when your git branch is not a descendant of the version in the
511 archive according to the git revision history.
512
513 It is safer not to specify previous-version, and usually it's
514 not needed. Just say --overwrite, unless you know what you are
515 doing.
516
517 This option is useful if you are the maintainer, and you have
518 incorporated NMU changes into your own git workflow in a way
519 that doesn't make your branch a fast forward from the NMU. It
520 can also be useful when there was an upload made without dgit
521 since the most recent upload made with dgit.
522
523 This option is also usually necessary the first time a package
524 is pushed with dgit push to a particular suite. See dgit-
525 maint-*[1m(7).
526
527 If previous-version is not specified, dgit will check that the
528 version in the archive is mentioned in your debian/changelog.
529 (This will avoid losing changes, even with --overwrite, unless
530 someone committed to git a finalised changelog entry, and then
531 made later changes to that version.) If previous-version is
532 specified, it ought to be the version currently in the archive.
533
534 dgit push --overwrite will, if necessary, make a pseudo-merge
535 (that is, something that looks like the result of git merge -s
536 ours) to stitch the archive's version into your own git history,
537 so that your push is a fast forward from the archive.
538
539 (In quilt mode gbp, dpm, unpatched or baredebian*, implying a
540 split between the dgit view and the maintainer view, the pseudo-
541 merge will appear only in the dgit view.)
542
543 --delayed=days
544 Upload to a DELAYED queue.
545
546 WARNING: If the maintainer responds by cancelling your upload
547 from the queue, and does not make an upload of their own, this
548 will not rewind the git branch on the dgit git server. Other
549 dgit users will then see your push (with a warning message from
550 dgit) even though the maintainer wanted to abolish it. Such
551 users might unwittingly reintroduce your changes.
552
553 If this situation arises, someone should make a suitable dgit
554 push to update the contents of dgit-repos to a version without
555 the controversial changes.
556
557 --no-chase-dsc-distro
558 Tells dgit not to look online for additional git repositories
559 containing information about a particular .dsc being imported.
560 Chasing is the default.
561
562 For most operations (such as fetch and pull), disabling chasing
563 means dgit will access only the git server for the distro you
564 are directly working with, even if the .dsc was copied verbatim
565 from another distro. For import-dsc, disabling chasing means
566 dgit will work completely offline.
567
568 Disabling chasing can be hazardous: if the .dsc names a git com‐
569 mit which has been rewritten by those in charge of the distro,
570 this option may prevent that rewrite from being effective.
571 Also, it can mean that dgit fails to find necessary git commits.
572
573 --save-dgit-view=branch|ref
574 Specifies that when split view is in operation, and dgit calcu‐
575 lates (or looks up in its cache) a dgit view corresponding to
576 your HEAD, the dgit view will be left in ref. The specified ref
577 is unconditionally overwritten, so don't specify a branch you
578 want to keep.
579
580 This option is effective only with the following operations:
581 quilt-fixup; push; all builds. And it is only effective when
582 split view is actually in operation.
583
584 If ref does not start with refs/ it is taken to be a branch -
585 i.e. refs/heads/ is prepended.
586
587 --dgit-view-save is a deprecated alias for --save-dgit-view.
588
589 --deliberately-something
590 Declare that you are deliberately doing something. This can be
591 used to override safety catches, including safety catches which
592 relate to distro-specific policies. The use of --deliberately
593 is declared and published in the signed tags generated for you
594 by dgit, so that the archive software can give effect to your
595 intent, and for the benefit of humans looking at the history.
596 The meanings of somethings understood in the context of Debian
597 are discussed below:
598
599 --deliberately-not-fast-forward
600 Declare that you are deliberately rewriting history. This could
601 be because your branch is not fast forward from the dgit server
602 history, or not fast forward from a locally-synthesised dsc im‐
603 port.
604
605 When pushing to Debian, use this only when you are making a re‐
606 newed upload of an entirely new source package whose previous
607 version was not accepted for release from NEW because of prob‐
608 lems with copyright or redistributibility; or, exceptionally,
609 for the very first upload with dgit.
610
611 When split view is in operation, this also prevents the con‐
612 struction by dgit of a pseudomerge to make the dgit view fast
613 forwarding. Normally only one of --overwrite (which creates a
614 suitable pseudomerge) and --deliberately-not-fast-forward (which
615 suppresses the pseudomerge and the fast forward checks) should
616 be needed; --overwrite is usually better.
617
618 --deliberately-include-questionable-history
619 Declare that you are deliberately including, in the git history
620 of your current push, history which contains a previously-sub‐
621 mitted version of this package which was not approved (or has
622 not yet been approved) by the ftpmasters. When pushing to De‐
623 bian, only use this option after verifying that: none of the re‐
624 jected-from-NEW (or never-accepted) versions in the git history
625 of your current push, were rejected by ftpmaster for copyright
626 or redistributability reasons.
627
628 --deliberately-fresh-repo
629 Declare that you are deliberately rewriting history and want to
630 throw away the existing repo. Not relevant when pushing to De‐
631 bian, as the Debian server will do this automatically when nec‐
632 essary.
633
634 --quilt=linear
635 When fixing up source format `3.0 (quilt)' metadata, insist on
636 generating a linear patch stack: one new patch for each relevant
637 commit. If such a stack cannot be generated, fail. This is the
638 default for Debian.
639
640 HEAD should be a series of plain commits (not touching de‐
641 bian/patches/), and pseudomerges, with as ancestor a patches-ap‐
642 plied branch.
643
644 --quilt=auto
645 When fixing up source format `3.0 (quilt)' metadata, prefer to
646 generate a linear patch stack (as with --quilt=linear) but if
647 that doesn't seem possible, try to generate a single squashed
648 patch for all the changes made in git (as with --quilt=smash).
649 This is not a good idea for an NMU in Debian.
650
651 --quilt=smash
652 When fixing up source format `3.0 (quilt)' metadata, generate a
653 single additional patch for all the changes made in git. This
654 is not a good idea for an NMU in Debian.
655
656 (If HEAD has any in-tree patches already, they must apply
657 cleanly. This will be the case for any trees produced by dgit
658 fetch or clone; if you do not change the upstream version nor
659 make changes in debian/patches, it will remain true.)
660
661 --quilt=single
662 When fixing up source format `3.0 (quilt)' metadata, delete all
663 the existing patches, and then generate a single patch for all
664 the changes made in git. This is not a good idea for an NMU in
665 Debian.
666
667 Use this instead of the single-debian-patch dpkg-source format
668 option. That dpkg-source option cannot handle certain changes
669 to the tree that dpkg-source otherwise permits, and in some
670 cases it can generate strange source packages that dpkg-source
671 appears to accept but which become corrupted when people later
672 try to modify them.
673
674 --quilt=nofix
675 Check whether source format `3.0 (quilt)' metadata would need
676 fixing up, but, if it does, fail. You must then fix the meta‐
677 data yourself somehow before pushing. (NB that dpkg-source
678 --commit will not work because the dgit git tree does not have a
679 .pc directory.)
680
681 --quilt=nocheck | --no-quilt-fixup
682 Do not check whether source format `3.0 (quilt)' metadata needs
683 fixing up. If you use this option and the metadata did in fact
684 need fixing up, dgit push will fail.
685
686 --[quilt=]gbp | --[quilt=]dpm | --quilt=unapplied | --[quilt=]barede‐
687 bian[+git|+tarball]
688 Tell dgit that you are using a nearly-dgit-compatible git
689 branch, aka a maintainer view, and do not want your branch
690 changed by dgit.
691
692 These quilt modes are known as splitting quilt modes. See
693 --split-view, below.
694
695 --gbp (short for --quilt=gbp) is for use with git-buildpackage.
696 Your HEAD is expected to be a patches-unapplied git branch, ex‐
697 cept that it might contain changes to upstream .gitignore files.
698 This is the default for dgit gbp-build.
699
700 --dpm (short for --quilt=dpm) is for use with git-dpm. Your
701 HEAD is expected to be a patches-applied git branch, except that
702 it might contain changes to upstream .gitignore files.
703
704 --quilt=unapplied specifies that your HEAD is a patches-unap‐
705 plied git branch (and that any changes to upstream .gitignore
706 files are represented as patches in debian/patches).
707
708 --quilt=baredebian (or its alias --quilt=baredebian+git) speci‐
709 fies that your HEAD contains only a debian/ directory, with any
710 changes to upstream files represented as patches in de‐
711 bian/patches. The upstream source must be available in git, by
712 default, in a suitably named git tag; see --upstream-commitish.
713 In this mode, dgit cannot check that all edited upstream files
714 are properly represented as patches: dgit relies on de‐
715 bian/patches being correct.
716
717 --quilt=baredebian+tarball is like --quilt=baredebian, but is
718 used when there is no appropriate upstream git history. To con‐
719 struct the dgit view, dgit will import your orig tarballs' con‐
720 tents into git. In this mode, dgit cannot check that the up‐
721 stream parts of your upload correspond to what you intend: dgit
722 relies on the right orig tarball(s) existing, and debian/patches
723 being correct.
724
725 With --quilt=gbp|dpm|unapplied|baredebian*, dgit push (or pre‐
726 cursors like quilt-fixup and build) will automatically generate
727 a conversion of your git branch into the right form. dgit push
728 will push the dgit-compatible form (the dgit view) to the dgit
729 git server. The dgit view will be visible to you in the dgit
730 remote tracking branches, but your own branch will not be modi‐
731 fied. dgit push will create a tag debian/version for the main‐
732 tainer view, and the dgit tag archive/debian/version for the
733 dgit view. dgit quilt-fixup will merely do some checks, and
734 cache the maintainer view.
735
736 If you have a branch like this it is essential to specify the
737 appropriate --quilt= option! This is because it is not always
738 possible to tell: a patches-unapplied git branch of a package
739 with one patch, for example, looks very like a patches-applied
740 branch where the user has used git revert to undo the patch, ex‐
741 pecting to actually revert it. However, if you fail to specify
742 the right --quilt option, and you aren't too lucky, dgit will
743 notice the problem and stop, with a useful hint.
744
745 -ddistro | --distro=distro
746 Specifies that the suite to be operated on is part of distro
747 distro. This overrides the default value found from the git
748 config option dgit-suite.suite.distro. The only effect is that
749 other configuration variables (used for accessing the archive
750 and dgit-repos) used are dgit-distro.distro.*.
751
752 If your suite is part of a distro that dgit already knows about,
753 you can use this option to make dgit work even if your dgit
754 doesn't know about the suite. For example, specifying -ddebian
755 will work when the suite is an unknown suite in the Debian ar‐
756 chive.
757
758 To define a new distro it is necessary to define methods and
759 URLs for fetching (and, for dgit push, altering) a variety of
760 information both in the archive and in dgit-repos. How to set
761 this up is not yet documented.
762
763 --split-view=auto|always|never
764 Controls whether dgit operates a split view, separating your own
765 branch (as Debian maintainer) from that shown to users of dgit
766 clone and dgit fetch.
767
768 When split view is in operation dgit will not make or merge any
769 commits onto your own branch. Specifically, only the dgit view
770 will contain dgit's pseudomerges, which bring into the git his‐
771 tory previous uploads made with dgit push, and any commits in
772 debian/patches required to make a correct `3.0 (quilt)' source
773 package.
774
775 auto is the default, and splits the view only when needed: i.e.,
776 when you are working with a `3.0 (quilt)' source package and a
777 splitting quilt mode: --[quilt=]gbp, dpm, unpatched or barede‐
778 bian*.
779
780 always splits the view regardless of the source format and the
781 quilt mode.
782
783 never will cause dgit to fail if split view is needed.
784
785 When split view is in operation, the dgit view is visible in
786 your local git clone, but only in refs specific to dgit: notably
787 remotes/dgit/dgit/suite and archive/distro/version.
788
789 Note that split view does not affect dgit fetch, and is not com‐
790 patible with dgit pull.
791
792 -Cchangesfile
793 Specifies the .changes file which is to be uploaded. By default
794 dgit push looks for a single .changes file in the parent direc‐
795 tory whose filename suggests it is for the right package and
796 version.
797
798 If the specified changesfile pathname contains slashes, the di‐
799 rectory part is also used as the value for --build-products-dir;
800 otherwise, the changes file is expected in that directory (by
801 default, in ..).
802
803 --upstream-commitish=upstream
804 For use with --quilt=baredebian only. Specifies the commit con‐
805 taining the upstream source. This commit must be identical to
806 your .orig tarball. The default is to look for one of the git
807 tags U vU upstream/U (in that order), where U is the upstream
808 version.
809
810 --rm-old-changes
811 When doing a build, delete any changes files matching pack‐
812 age_version_*.changes before starting. This ensures that dgit
813 push (and dgit sbuild) will be able to unambiguously identify
814 the relevant changes files from the most recent build, even if
815 there have been previous builds with different tools or options.
816 The default is not to remove, but --no-rm-old-changes can be
817 used to override a previous --rm-old-changes or the .rm-old-
818 changes configuration setting.
819
820 Note that dgit push-source will always find the right .changes,
821 regardless of this option.
822
823 --build-products-dir=directory
824 Specifies where to find and create tarballs, binary packages,
825 source packages, .changes files, and so on.
826
827 By default, dgit uses the parent directory (..).
828
829 Changing this setting may necessitate moving .orig tarballs to
830 the new directory, so it is probably best to use the dgit.de‐
831 fault.build-products-dir configuration setting (see CONFIGURA‐
832 TION, below) which this command line option overrides).
833
834 --no-rm-on-error
835 Do not delete the destination directory if clone fails.
836
837 --dep14tag
838 Generates a DEP-14 tag (eg debian/version) as well as a dgit tag
839 (eg archive/debian/version). This is the default.
840
841 --no-dep14tag
842 Do not generate a DEP-14 tag, except when split view is in oper‐
843 ation.
844
845 --always-dep14tag
846 Obsolete alias for --dep14tag, retained for compatibility.
847
848 -D Prints debugging information to stderr. Repeating the option
849 produces more output (currently, up to -DDDD is meaningfully
850 different).
851
852 -cname=value
853 Specifies a git configuration option, to be used for this run.
854 dgit itself is also controlled by git configuration options.
855
856 -vversion|_ | --since-version=version|_
857 Specifies the -vversion option to pass to dpkg-genchanges, dur‐
858 ing builds. Changes (from debian/changelog) since this version
859 will be included in the built changes file, and hence in the up‐
860 load. If this option is not specified, dgit will query the ar‐
861 chive and use the latest version uploaded to the intended suite.
862
863 Specifying _ inhibits this, so that no -v option will be passed
864 to dpkg-genchanges (and as a result, only the last stanza from
865 debian/changelog will be used for the build and upload).
866
867 -mmaintaineraddress
868 Passed to dpkg-genchanges (eventually).
869
870 --ch:option
871 Specifies a single additional option to pass, eventually, to
872 dpkg-genchanges.
873
874 Options which are safe to pass include -C (and also -si -sa -sd
875 although these should never be necessary with Debian since dgit
876 automatically calculates whether .origs need to be uploaded.)
877
878 For other options the caveat below applies.
879
880 --curl:option | --dput:option |...
881 Specifies a single additional option to pass to curl, dput, deb‐
882 sign, dpkg-source, dpkg-buildpackage, dpkg-genchanges, sbuild,
883 pbuilder, cowbuilder, ssh, dgit, git-debrebase, apt-get, apt-
884 cache, gbp-pq, gbp-build, or mergechanges. Can be repeated as
885 necessary.
886
887 Use of this ability should not normally be necessary. It is
888 provided for working around bugs, or other unusual situations.
889 If you use these options, you may violate dgit's assumptions
890 about the behaviour of its subprograms and cause lossage.
891
892 For dpkg-buildpackage, dpkg-genchanges, mergechanges and sbuild,
893 the option applies only when the program is invoked directly by
894 dgit. Usually, for passing options to dpkg-genchanges, you
895 should use --ch:option.
896
897 Specifying --git is not effective for some lower-level read-only
898 git operations performed by dgit, and also not when git is in‐
899 voked by another program run by dgit.
900
901 See notes below regarding ssh and dgit.
902
903 NB that --gpg:option is not supported (because debsign does not
904 have that facility). But see -k and the keyid distro config
905 setting.
906
907 --curl!:option | --dput!:option |...
908 Specifies an option to remove from the command line for a pro‐
909 gram called by dgit, as for --program:option (and the same
910 caveats apply).
911
912 Any options or arguments exactly identical to option are re‐
913 moved. (It is not an error if there were none.)
914
915 This can only be used to delete options which are always passed
916 by default by dgit, or to undo a previous --program:option. It
917 cannot be used to override option(s) dynamically decided on by
918 dgit.
919
920 --curl=program | --dput=program |...
921 Specifies alternative programs to use instead of curl, dput,
922 debsign, dpkg-source, dpkg-buildpackage, dpkg-genchanges,
923 sbuild, pbuilder, cowbuilder, gpg, ssh, dgit, git-debrebase,
924 apt-get, apt-cache, git, gbp-pq, gbp-build, or mergechanges.
925
926 For dpkg-buildpackage, dpkg-genchanges, mergechanges and sbuild,
927 this applies only when the program is invoked directly by dgit.
928
929 For dgit, specifies the command to run on the remote host when
930 dgit rpush needs to invoke a remote copy of itself. (dgit also
931 reinvokes itself as the EDITOR for dpkg-source --commit; this is
932 done using argv[0], and is not affected by --dgit=).
933
934 gbp-build's value is used instead of gbp build or git-buildpack‐
935 age. (The default is the latter unless the former exists on
936 PATH.) gbp-pq's value is used instead of gbp pq. In both
937 cases, unusually, the specified value is split on whitespace to
938 produce a command and possibly some options and/or arguments.
939
940 For pbuilder and cowbuilder, the defaults are sudo -E pbuilder
941 and sudo -E cowbuilder respectively. Like with gbp-build and
942 gbp pq, the specified value is split on whitespace.
943
944 For ssh, the default value is taken from the DGIT_SSH or GIT_SSH
945 environment variables, if set (see below). And, for ssh, when
946 accessing the archive and dgit-repos, this command line setting
947 is overridden by the git config variables dgit-distro.distro.ssh
948 and .dgit.default.ssh (which can in turn be overridden with -c).
949 Also, when dgit is using git to access dgit-repos, only git's
950 idea of what ssh to use (eg, GIT_SSH) is relevant.
951
952 --existing-package=package
953 dgit push needs to canonicalise the suite name. Sometimes, dgit
954 lacks a way to ask the archive to do this without knowing the
955 name of an existing package. Without --new we can just use the
956 package we are trying to push. But with --new that will not
957 work, so we guess dpkg or use the value of this option. This
958 option is not needed with the default mechanisms for accessing
959 the archive.
960
961 -h|--help
962 Print a usage summary.
963
964 --initiator-tempdir=directory
965 dgit rpush uses a temporary directory on the invoking (signing)
966 host. This option causes dgit to use directory instead. Fur‐
967 thermore, the specified directory will be emptied, removed and
968 recreated before dgit starts, rather than removed after dgit
969 finishes. The directory specified must be an absolute pathname.
970
971 --dry-run | -n
972 Go through the motions, fetching all information needed, but do
973 not actually update the output(s). For push, dgit does the re‐
974 quired checks and leaves the new .dsc in a temporary file, but
975 does not sign, tag, push or upload.
976
977 This is not a very good simulation. It can easily go wrong in
978 ways that a for-real push wouldn't.
979
980 --damp-run | -L
981 Go through many more of the motions: do everything that doesn't
982 involve either signing things, or making changes on the public
983 servers.
984
985 Using this will make unsigned tags, and possibly other local
986 changes, that will get in the way of a for-real push. So be
987 prepared to burn the version number you're using.
988
989 --force-something
990 Instructs dgit to try to proceed despite detecting what it
991 thinks is going to be a fatal problem. This is probably not go‐
992 ing to work. These options are provided as an escape hatch, in
993 case dgit is confused. (They might also be useful for testing
994 error cases.)
995
996 --force-import-dsc-with-dgit-field
997 Tell dgit import-dsc to treat a .dsc with a Dgit field like one
998 without it. The result is a fresh import, discarding the git
999 history that the person who pushed that .dsc was working with.
1000
1001 --force-reusing-version
1002 Carry on even though this involves reusing a version number of a
1003 previous push or upload. It is normally best to give different
1004 versions different numbers. Some servers (including, usually,
1005 the Debian server) will reject attempts to reuse or replace al‐
1006 ready-pushed versions.
1007
1008 --force-uploading-binaries
1009 Carry on and upload binaries even though dgit thinks your distro
1010 does not permit that.
1011
1012 --force-uploading-source-only
1013 Carry on and do a source-only upload, without any binaries, even
1014 though dgit thinks your distro does not permit that, or does not
1015 permit that in this situation.
1016
1017 --force-unrepresentable
1018 Carry on even if dgit thinks that your git tree contains changes
1019 (relative to your .orig tarballs) which dpkg-source is not able
1020 to represent. Your build or push will probably fail later.
1021
1022 --force-changes-origs-exactly
1023 Use the set of .origs specified in your .changes, exactly, with‐
1024 out regard to what is in the archive already. The archive may
1025 well reject your upload.
1026
1027 --force-unsupported-source-format
1028 Carry on despite dgit not understanding your source package for‐
1029 mat. dgit will probably mishandle it.
1030
1031 --force-dsc-changes-mismatch
1032 Do not check whether .dsc and .changes match. The archive will
1033 probably reject your upload.
1034
1035 --force-import-gitapply-absurd | --force-import-gitapply-no-absurd
1036 Force on or off the use of the absurd git-apply emulation when
1037 running gbp pq import when importing a package from a .dsc. See
1038 Debian bug #841867.
1039
1040 --for-push
1041 Override the dgit-distro.distro.readonly configuration setting,
1042 to specify that we have read/write access and should use the
1043 corresponding git and achieve access approach even if the opera‐
1044 tion is a read-only one.
1045
1047 dgit can be configured via the git config system. You may set keys
1048 with git-config (either in system-global or per-tree configuration), or
1049 provide -ckey=value on the dgit command line.
1050
1051 Settings likely to be useful for an end user include:
1052
1053 dgit.default.build-products-dir
1054 Specifies where to find the built files to be uploaded, when
1055 --build-products-dir is not specified. The default is the par‐
1056 ent directory (..).
1057
1058 dgit-suite.suite.distro distro
1059 Specifies the distro for a suite. dgit keys off the suite name
1060 (which appears in changelogs etc.), and uses that to determine
1061 the distro which is involved. The config used is thereafter
1062 that for the distro.
1063
1064 suite may be a glob pattern.
1065
1066 dgit.default.distro distro
1067 The default distro for an unknown suite.
1068
1069 This is only used if no /usr/share/distro-info/somedistro.csv
1070 mentions the specified suite.
1071
1072 dgit.default.default-suite suite
1073 The default suite (eg for clone).
1074
1075 dgit.default.*
1076 for each dgit-distro.distro.*, the default value used if there
1077 is no distro-specific setting.
1078
1079 dgit-distro.distro.clean-mode
1080 One of the values for the command line --clean= option; used if
1081 --clean is not specified.
1082
1083 dgit-distro.distro.clean-mode-newer
1084 Like .clean-mode, but ignored if the value is unknown to this
1085 version of dgit. Setting both .clean-mode and .clean-mode-newer
1086 is useful to provide a single git config compatible with differ‐
1087 ent dgit versions.
1088
1089 dgit-distro.distro.quilt-mode
1090 One of the values for the command line --quilt= option; used if
1091 --quilt is not specified.
1092
1093 dgit-distro.distro.split-view
1094
1095 dgit-distro.distro.rm-old-changes
1096 Boolean, used if neither --rm-old-changes nor --no-rm-old-
1097 changes is specified. The default is not to remove.
1098
1099 dgit-distro.distro.readonly auto|a | true|t|y|1 | false|f|n|0
1100 Whether you have push access to the distro. For Debian, it is
1101 OK to use auto, which uses readonly mode if you are not pushing
1102 right now; but, setting this to false will avoid relying on the
1103 mirror of the dgit git repository server.
1104
1105 dgit-distro.distro.keyid
1106 See also -k.
1107
1108 dgit-distro.distro.mirror url
1109
1110 dgit-distro.distro.username
1111 Not relevant for Debian.
1112
1113 dgit-distro.distro.upload-host
1114 Might be useful if you have an intermediate queue server.
1115
1116 dgit-distro.distro.user-name dgit-distro.distro.user-email
1117 Values to configure for user.name and user.email in new git
1118 trees. If not specified, the DEBFULLNAME and DEBEMAIL environ‐
1119 ment variables are used, respectively. Only used if .setup-
1120 usermail is not disabled.
1121
1122 dgit-distro.distro.setup-useremail
1123 Whether to set user.name and user.email in new git trees. True
1124 by default. Ignored for dgit setup-useremail, which does it
1125 anyway.
1126
1127 dgit-distro.distro.setup-mergechangelogs
1128 Whether to set up a merge driver which uses dpkg-mergechangelogs
1129 for debian/changelog. True by default. Ignored for dgit setup-
1130 mergechangelogs, which does it anyway.
1131
1132 dgit-distro.distro.setup-gitattributes
1133 Whether to configure .git/info/attributes to suppress
1134 checkin/checkout file content transformations in new git trees.
1135 True by default. Ignored for dgit setup-gitattributes, which
1136 does it anyway.
1137
1138 dgit-distro.distro.cmd-cmd
1139 Program to use instead of cmd. Works like --cmd=... .
1140
1141 dgit-distro.distro.opts-cmd
1142 Extra options to pass to cmd. Works like --cmd:... . To pass
1143 several options, configure multiple values in git config (with
1144 git config --add). The options for dgit.default.opts-cmd and
1145 dgit-distro.distro/push.opts-cmd are all used, followed by op‐
1146 tions from dgit's command line.
1147
1149 There are many other settings which specify how a particular distro's
1150 services (archive and git) are provided. These should not normally be
1151 adjusted, but are documented for the benefit of distros who wish to
1152 adopt dgit.
1153
1154 dgit-distro.distro.nominal-distro
1155 Shown in git tags, Dgit fields, and so on.
1156
1157 dgit-distro.distro.alias-canon
1158 Used for all access configuration lookup.
1159
1160 dgit-distro.distro/push.*
1161 If set, overrides corresponding non /push config when read‐
1162 only=false, or when pushing and readonly=auto.
1163
1164 dgit-distro.distro.git-url
1165
1166 dgit-distro.distro.git-url[-suffix]
1167
1168 dgit-distro.distro.git-proto
1169
1170 dgit-distro.distro.git-path
1171
1172 dgit-distro.distro.git-check true|false|url|ssh-cmd
1173
1174 dgit-distro.distro.git-check-suffix
1175
1176 dgit-distro.distro.diverts.divert new-distro|/distro-suffix
1177
1178 dgit-distro.distro.git-create ssh-cmd|true
1179
1180 dgit-distro.distro.archive-query ftpmasterapi: | madison:distro | dum‐
1181 mycat:/path | sshpsql:user@host:dbname | aptget:
1182
1183 dgit-distro.distro.archive-query-(url|tls-key|curl-ca-args)
1184
1185 dgit-distro.distro.madison-distro
1186
1187 dgit-distro.distro.archive-query-default-component
1188
1189 dgit-distro.distro.dep14tag want|no[|always]
1190
1191 dgit-distro.distro.ssh
1192
1193 dgit-distro.distro.sshpsql-dbname
1194
1195 dgit-distro.distro.(git|sshpsql)-(user|host|user-force)
1196
1197 dgit-distro.distro.backports-quirk
1198
1199 dgit-distro.distro.rewrite-map-enable
1200
1201 dgit-distro.distro.source-only-uploads ok|always|never|not-wholly-new
1202
1203 dgit.default.old-dsc-distro
1204
1205 dgit.dsc-url-proto-ok.protocol
1206
1207 dgit.dsc-url-proto-ok.bad-syntax
1208
1209 dgit.default.dsc-url-proto-ok
1210
1211 dgit.default.push-subcmd source|built|warn,built
1212 Controls the behaviour of dgit push.
1213
1214 dgit.vcs-git.suites suite[;...]
1215
1217 DGIT_SSH, GIT_SSH
1218 specify an alternative default program (and perhaps arguments)
1219 to use instead of ssh. DGIT_SSH is consulted first and may con‐
1220 tain arguments; if it contains any whitespace will be passed to
1221 the shell. GIT_SSH specifies just the program; no arguments can
1222 be specified, so dgit interprets it the same way as git does.
1223 See also the --ssh= and --ssh: options.
1224
1225 DEBEMAIL, DEBFULLNAME
1226 Default git user.email and user.name for new trees. See dgit
1227 setup-new-tree.
1228
1229 gpg, dpkg-..., debsign, git, [lib]curl, dput
1230 and other subprograms and modules used by dgit are affected by
1231 various environment variables. Consult the documentation for
1232 those programs for details.
1233
1235 There should be a `dgit rebase-prep' command or some such to turn a
1236 fast-forwarding branch containing pseudo-merges back into a rebasing
1237 patch stack. It might have to leave a note for a future dgit push.
1238
1239 If the dgit push fails halfway through, it is not necessarily
1240 restartable and idempotent. It would be good to check that the pro‐
1241 posed signing key is available before starting work.
1242
1243 dgit's build functions, and dgit push, may make changes to your current
1244 HEAD. Sadly this is necessary for packages in the `3.0 (quilt)' source
1245 format. This is ultimately due to what I consider design problems in
1246 quilt and dpkg-source.
1247
1248 --dry-run does not always work properly, as not doing some of the git
1249 fetches may result in subsequent actions being different. Doing a non-
1250 dry-run dgit fetch first will help. --damp-run is likely to work much
1251 better.
1252
1254 dgit(7), dgit-*[22m(7), curl(1), dput(1), debsign(1), git-config(1), git-
1255 buildpackage(1), dpkg-buildpackage(1),
1256 https://browse.dgit.debian.org/
1257
1258
1259
1260Debian Project dgit(1)