1dgit(1)                              dgit                              dgit(1)
2
3
4

NAME

6       dgit - git integration with the Debian archive
7

SYNOPSIS

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

DESCRIPTION

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

OPERATIONS

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

OPTIONS

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-*(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

CONFIGURATION

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

ACCESS CONFIGURATION

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

ENVIRONMENT VARIABLES

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

BUGS

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

SEE ALSO

1254       dgit(7),  dgit-*(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)
Impressum