[[dt-option]]
=== Upstream snapshot (-d, -t)

This packaging scheme is good for the git repository organized as described in *gbp-buildpackage*(7) which uses the master, upstream, and pristine-tar branches.

The upstream snapshot from the upstream source tree in the VCS can be made with the *-d* option if the upstream package supports the ``*make dist*'' equivalence.

----
 $ cd /path/to/upstream-vcs
 $ debmake -d -i debuild
----

Alternatively, the same can be made with the *-t* option if the upstream tarball can be made with the *tar* command.

----
 $ cd /path/to/upstream-vcs
 $ debmake -p package -t -i debuild
----

Unless you provide the upstream version with the *-u* option or with the *debian/changelog* file, a snapshot upstream version is generated in the *0\~%y%m%d%H%M* format, e.g., '0~1403012359', from the UTC date and time.

If the upstream VCS is hosted in the 'package/' directory instead of the 'upstream-vcs/' directory, the ``*-p* 'package''' can be skipped.

If the upstream source tree in the VCS contains the **debian/*** files, the *debmake* command with either the *-d* option or the *-t* option combined with the *-i* option automates the making of a non-native Debian package from the VCS snapshot while using these **debian/*** files.

----
 $ cp -r /path/to/package-0~1403012359/debian/. /path/to/upstream-vcs/debian
 $ dch
   ... update debian/changelog
 $ git add -A .; git commit -m "vcs with debian/*"
 $ debmake -t -p package -i debuild
----

This *non-native* Debian binary package building scheme using the ``*debmake -t -i debuild*'' command may be considered as the *quasi-native* Debian package scheme since the packaging situation resembles the *native* Debian binary package building case using the *debuild* command without the upstream tarball.

Use of a *non-native* Debian package helps to ease communication with the downstream distros such as Ubuntu for bug fixes etc.

[[deborig]]
=== Upstream snapshot (alternative `git deborig` approach)

This packaging scheme is good for the git repository organized as described in *dgit-maint-merge*(7) which uses the master branch only.

You can create the upstream tarball and Debian package simply as follows.

----
 $ cd /path/to/upstream-git
 $ git deborig -f HEAD
 $ pdebuild
----

This scheme can be applied to the *quasi-native* Debian package scheme when `debian/changelog` contains the non-native version number with revision like `0.16-1`.

For `-1` revision, this use of `git-deborig`(1) as above is how this `debmake-doc` package generates the upstream tarball.  For source format `3.0 (quilt)`, files under `debian/` directory in the upstream tarball has no negatives.  You may override the lintian warning.

For `-2`, `-3`, ... revisions, you need to fetch and use the uploaded upstream tarball instead.  For this, `origtargz`(1) may be handy.

