[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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


Reply to: