Re: dgit and git-dpm (was Re: Standardizing the layout of git packaging repositories)
On 29 October 2014 05:39, Guido Günther <firstname.lastname@example.org> wrote:
> On Tue, Oct 28, 2014 at 07:17:49PM +0000, Ian Jackson wrote:
>> Brian May writes ("Re: Standardizing the layout of git packaging repositories"):
>> > However, with git-dpm, no branch is ever destroyed. Every branch is always
>> > merged into the Debian branch. The Debian branch itself always heads in a
>> > single forward direction and this branch is never rebased. Furthermore,
>> > because this is a pseudo-standard, everything can expect this is what will
>> > happen.
>> > See http://git-dpm.alioth.debian.org/ for details.
>> I have an experimental version of dgit (not yet uploaded anywhere)
>> which handles .pc differently: the dgit git tree does not contain .pc.
>> I wrote some (frankly quite terrifying) code to reconstruct a .pc from
>> the artifacts available to dgit (mainly debian/patches and ../*orig*).
>> I used my new dgit to clone xwit (since that's listed as the example
>> in the git-dpm page) and the dgit git tree for 3.4-15 is almost
>> identical to that at the alioth tag debian-3.4-15. There is one
>> difference: dgit's tree does not contain .gitignore. I don't think
>> the lack of .gitignore is important for git-dpm users. (Arguably it's
>> a bug that git-buildpackage et al remove it.)
> At which step does gbp remove .gitignore? It shouldn't and it doesn't
> over here.
dpkg-source removes it, by default, for 3.0 based formats as it's part
of the default ignore list.
(or rather ignores it)
$ apt-get source hello
$ cd hello-*
$ cat debian/source/format
$ git init
$ echo "*.a" > .gitignore
$ git add .
$ git commit -m "initial"
$ debuild -S
$ dpkg-source -x ../hello*.dsc
$ cat hello-*/.gitignore
ls: cannot access hello-2.8/.gitignore: No such file or directory
Ideally "packaging .gitignore" would be in debian/gitignore, but I
don't know if that will work.
This is a problem, because it breaks the round-trip guarantees between
dgit, git, dsc. That is, unpacking source package does not re-create
matching git tree sha.