dgit-maint-native man page

dgit — tutorial for package maintainers of Debian-native packages

Introduction

This document describes elements of a workflow for using dgit to maintain a Debian package that uses one of the native source formats ("1.0" & "3.0 (native)").

Benefits

  • Benefit from dgit's safety catches.  In particular, ensure that your upload always matches exactly your git HEAD.
  • Provide a better, more detailed history to downstream dgit users.
  • Incorporate an NMU with one command.

First Push with Dgit

You do not need to do anything special to your tree to push with dgit.

Simply prepare your git tree in the usual way, and then:

    % dgit -wgf sbuild -A -c sid
    % dgit -wgf --overwrite push

(Do not make any tags yourself: dgit push will do that.)

You may use dgit pbuilder or dgit cowbuilder instead of dgit sbuild; see dgit(1) for the syntax of those subcommands.

The --overwrite option tells dgit that you are expecting that your git history is not a descendant of the history which dgit synthesised from the previous non-dgit uploads.

dgit will make a merge commit on your branch but without making any code changes (ie, a pseudo-merge) so that your history, which will be pushed to the dgit git server, is fast forward from the dgit archive view.

Alternatively, if this was the first ever dgit push of the package, you can avoid this merge commit by passing "--deliberately-not-fast-forward". instead of "--overwrite". This avoids introducing a new origin commit into your git history.

Subsequent Pushes

    % dgit -wgf push

That's it.

Incorporating an Nmu

    % dgit pull

That's it.

Or, if you would prefer to review the changes, you can do this:

    % dgit fetch
    % dgit diff HEAD..dgit/dgit/sid

If you do not merge the NMU into your own git history, the next push will then require --overwrite.

See Also

dgit(1), dgit(7)

Referenced By

dgit(1).

Debian Project perl v5.28.0 dgit