Subject: Introducing dgit - git integration with the Debian archive
Date: Thursday 22nd August 2013 19:52:10 UTC (over 4 years ago)
I'm pleased to announce that dgit 0.7, which is a version of dgit suitable for alpha and beta testers, is available in unstable. >From the manpage: dgit [dgit-opts] clone [dgit-opts] package [suite] [./dir|/dir] dgit [dgit-opts] fetch|pull [dgit-opts] [suite] dgit [dgit-opts] build|sbuild [build-opts] dgit [dgit-opts] push [dgit-opts] [suite] dgit treats the Debian archive as a version control system, and bidirectionally gateways between the archive and git. The git view of the package can contain the usual upstream git history, and will be augmented by commits representing uploads done by other developers not using dgit. This git history is stored in a canonical location known as dgit-repos which lives outside the Debian archive (currently, on Alioth). If you don't like git, or think I have taken the wrong approach, then you need read no further. You can carry on just as before. If on the other hand you'd like to experiment with a new tool that lets you work on any package in the archive using git, even with upstream git history in your history if you like, and to share your git-based work with other uploaders, please install dgit 0.7 from unstable and try it out. For more information, the full manpage is here: http://www.chiark.greenend.org.uk/~ijackson/2013/dgit.html (this is slightly more up to date than the one on manpages.debian.net). This is still a very early version. I'm not aware of anyone but me having used it in anger. So there are very likely to be bugs. Please report them. With regret I must note that currently you can't use it if you don't have a full DD account on both the Debian systems and on Alioth. Even if you just want a read-only mode. This is due to deficiencies in the archive software and in Alioth, which I have worked around in very unpleasant ways. I'm hoping that this will improve fairly soon. Please see the BUGS section of the manpage. The master git repository for dgit is here: http://anonscm.debian.org/gitweb/?p=dgit-repos/dgit.git Pull requests welcome (please send them to the BTS). Some background: At Debconf we had a series of discussion on the problem of integrating git and the archive, culminating in an excellent bar-BOF. We started with a diagram Joey Hess had drawn on a piece of cardboard, of a design he had; many of us came to the BOF with our own preconceptions. Too often these discussions result in a gigantic edifice which will take six-months to implement and six years to persuade people is a good idea. But, during this conversation, instead, pieces were hacked off until the result was implementable right away. So that's what dgit is. Key points about dgit's design: * It doesn't require anyone else to change their existing workflow. * You can use it on any package. * If you are the maintainer and want to use it on your own package, it will allow you to adopt a gitish workflow and will let you easily import into your git history the changes made in NMUs, security updates - and hopefully eventually derivative distros. * I think we can extend it later to support working on quilty packages (with patch stacks) as if they were git branches. This is not yet done because it's quite complicated. See PACKAGE SOURCE FORMATS in the manpage. Thanks, Ian.