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-built [dgit-opts] [suite]
14       dgit [dgit-opts] rpush|rpush-built 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-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

OPTIONS

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

CONFIGURATION

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

ACCESS CONFIGURATION

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

ENVIRONMENT VARIABLES

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

BUGS

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

SEE ALSO

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