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