Re: dpkg source format 3.0 (git)
Jonathan Nieder <firstname.lastname@example.org> writes:
> Henrique de Moraes Holschuh wrote:
>> Given the size of the .git dir when you're not using something like stgit
>> and have all objects properly packed, one could even consider shipping .git
>> inside the package if it is small enough.
>> Is that a proper way to do this? Or would we need a new 3.0 format variant
>> to do it right (assuming we want to do that) ?
> There has been talk  of a format variant that uses git bundles to do
> that efficiently, but nothing concrete. To me, it seems like a good idea.
> A few points  to keep in mind:
> - People can easily download source packages to access the original
> source and Debian changes without too much technical
> sophistication. Even a quilt series is just a series of patches so
> it doesnâ??t require specialized tools. So there is precedent for
> making it easy to access a source package from Debian.
> Will â??gitâ?? ever be as ubiquitous as â??patchâ??? If the source package
> is something you can â??git cloneâ?? to get a repository with
> appropriate â??masterâ?? and â??origin/upstreamâ?? branches, is that good
> enough? Probably. ;-)
> - The bundle needs to be clonable without use of any external object
> repository. The bundle ought to have branches â??masterâ?? and
> â??upstreamâ??, relevant tags, maybe a â??pristine-tarâ?? branch, and not
> much extra junk.
> - To be included in Debian main, everything in the bundle should meet
> the free software guidelines (right?); practically speaking, this
> means the history would very often be cauterized when the project
> is first packaged for Debian.
> Maybe some of the damage from this could be mitigated by including
> a suitable grafts file or refs for use by â??git replaceâ??.
> - Including the whole history with each upload and forcing users and
> buildds to reclone with each download would be unpleasant. (This
> can be turned around: with work, a git-based format might be able
> to decrease bandwidth use for sites like snapshots.debian.org.)
> - Bundles are hard to recreate. If they were to be created on the
> fly some way as in the previous item, the md5sums are not stable.
> Just something to think about.
> Thoughts? Especially, if anyone would like to talk implementation,
> let me know. It sounds difficult to do right, but thereâ??s no harm in
1) Think about doing this for linux-2.6, XOrg or OOo and what it would
mean for the source size or usability.
2) If you want a git repository then use a git repository. Castrating
git, hacking the history to pices and then mangling the whole thing into
a tar.gz is just stupid.
Teach DAK, dpkg-source and libapt about git. The Sources.gz file would
then just contain a reference and apt-get source foo would clone the
repository and so on.
Uploading a new source could then be sending a signed ref to the
maintainers git or sending a signed bundle or even just pushing and
setting a tag.
> The easiest way to try this out now is to include a bundle in the
> source tarball (ugh) and clone it at build time. If youâ??re doing
> that, please let me know how it goes.
But not the best way. :)
>  http://thread.gmane.org/gmane.linux.debian.devel.dpkg.general/11234
>  Thanks to Goswin for many of these: