On 19/10/2012 12:35, Steve Langasek wrote: > On Thu, Oct 18, 2012 at 08:16:50PM -0700, Russ Allbery wrote: >> Steve Langasek <vorlon@debian.org> writes: > >>> The last time I complained about non-pristine-tar git package repos on >>> IRC, I was told that pristine-tar doesn't scale. So apparently in git >>> usage, folks haven't worked out that the unpacked upstream source should >>> be tracked as a branch instead of trying to track a pristine-tar delta >>> against the upstream git branch directly. > >> What did you mean by that last sentence? I was unable to parse it. In >> particular, I think I don't understand the difference between "tracked as >> a branch" and "track a pristine-tar delta against the upstream git >> branch," which both sound like they mean the same thing. > > The UDD branch model used in Launchpad has three branches (not counting the > pristine-tar objects): > > - the upstream branch (as it exists upstream) > - a synthesized branch which merges from the upstream branch and tracks > the contents of the upstream tarball releases /as contents/ > - the packaging branch > > AIUI, most users of pristine-tar in git don't have the second of these > branches, which means the pristine-tar binary delta is done against the > upstream branch - so each pristine-tar blob contains all the information > about autogenerated files in the tarball, in a format that doesn't in turn > compress well in the git repository. And if your packaging branch actually > tracks the full source package contents, then it would have to track the > autogenerated files, so you might actually be storing these files twice. Actually most users of pristine-tar in git don't have the *first* of these branches. They usually have an upstream branch which is synthesized solely from importing tarballs using git import-orig. In other words, the typical practice is to avoid sharing git history with the upstream VCS, which in turn works out very well for git-dch, because you don't get unnecessary upstream changes documented in debian/changelog. > In UDD, the delta to the autogenerated files from one upstream release to > the next is stored like any other branch delta, and the pristine-tar blob > only has to account for the tarball/gzip metadata itself. I believe this > was done by design precisely in order to address the pristine-tar > scalability problem; in any case, I don't hear complaints about pristine-tar > being unusable for Ubuntu packages for the reasons people seem to be > shunning it for Debian packages in git. I honestly haven't heard about many people shunning pristine-tar for Debian packages in git. I suspect you're hearing about this from a vocal minority who also use alternative git packaging helpers. -- Kind regards, Loong Jin
Attachment:
signature.asc
Description: OpenPGP digital signature