Ian has said something along the lines of dgit being a private club; if you're not in the club the strange git-centric views of its members don't affect you. With that said, dgit is now a quite usable and nice tool and we would like more people in the club.
To that end, here's one way to get into our little world where the Debian source repository is really a collection of git repositories. I recently made a new package and added it to Debian, and here is every command I typed to do it (other than vim, lintian, and dpkg -i). As you read through, notice that every command has to do with git in one way or another.
git clone https://github.com/blake2-ppc/git-remote-gcrypt
This software makes git be able to push to encrypted git remotes. Very neat stuff.
git archive --format=tar origin/master -o | gzip > ../git-remote-gcrypt_0.20130908.orig.tar.gz
Like most software on github, this one has no upstream tarball; its git repository is its native source format. Needing to manually generate this tarball appendix is the only unpleasant part of the process.
git add debian
git commit -m debianization
Had to write 48 lines of control file and stuff to make the package build.
dgit build -tc
This just runs dpkg-buildpackage
. But you need to commit all files before running it.
dgit push --new
The --new is needed because this is a new package. This created the git repository for the package on alioth and pushed my changes and the upstream history to it, as well as uploadng the package to incoming.
-o
option in the example for thegit archive
command…dgit-maint-merge(7)
, a tutorial building on the ideas in this blog post.