Re: dpkg source format 3.0 (git)
Jonathan Nieder <jrnieder@gmail.com> 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 [1] 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 [2] 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
> experimenting.
Two things:
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. :)
> Jonathan
>
> [1] http://thread.gmane.org/gmane.linux.debian.devel.dpkg.general/11234
> [2] Thanks to Goswin for many of these:
> http://thread.gmane.org/gmane.linux.debian.devel.dpkg.general/11234/focus=11264
MfG
Goswin
Reply to: