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

Re: Clinica package

Le Thu, Jan 12, 2012 at 11:04:36PM +0100, Andreas Tille a écrit :
> $ git checkout pristine-tar
> Switched to branch 'pristine-tar'
> $ ls *
> clinica_0.2.1~dfsg.orig.tar.bz2.delta  clinica_0.2.1.orig.tar.gz.delta
> clinica_0.2.1~dfsg.orig.tar.bz2.id     clinica_0.2.1.orig.tar.gz.id
> $ pristine-tar checkout tarball
> fatal: Path 'tarball.delta' does not exist in 'refs/heads/pristine-tar'
> pristine-tar: git show refs/heads/pristine-tar:tarball.delta failed
> ... hmmm.  I said I'm willing to learn.  I admit I'm not really
> convinced by the method to keep upstream code in VCS.  I'm using Git in
> other teams who only keep debian/ dir in Git (as we do in SVN) and I
> never had any trouble.  On the other hand I *always* had trouble with
> pristine-tar issues in our Git.  I perfectly admit that it might be me -
> but things should be proof for idiots like me.

Hi Andreas,

short summary: you can ignore the pristine-tar branch if you use apt-get source
or debian/rules get-orig-source.

Perhaps you did not update the pristine-tar branch before trying to build the
package ?  The commande ‘gbp-pull’ will do this conveniently for you.
Otherwilse, it can be done simply by checking out the pristine-tar branch,
pulling (‘git pull’), and checking out the master branch again.  The same
applies the upstream branch.

Normally, it would not matter to work with pristine-tar or not: if the package
is already uploaded, ‘apt-get source’ can provide the reference upstream
sources, so that git-buildpackage does not need the upstream and pristine-tar
branches.  The problem arises when ‘debian/rules get-orig-source’ does not
produce tarballs with stable MD5 sums.  In our standard workflow, the one who
uploads defines the MD5 fingerprint of the tarball that will be in the Debian
archive.  With the pristine-tar workflow, it is the one who updates the Git
repository who defines what should be uploaded.  This opens the way to
potential problems.

One part of the solution is to work on the get-orig-source target to force
it to make as stable MD5 fingerprints as possible.

Note also that at anytime you can work with tarballs produced by the
get-orig-source target, even if their MD5 fingerprint fluctuates.  It is
just that if you upload the package, then the pristine-tar branch will be

The other part of the solution is therefore to find or write a tool that allows
to easily align the pristine-tar branch with the Debian archive.

About just keeping the debian directory; I would not like it.  Having the
upstream source checked in is an addictive convenience for bug hunting, and
also for copyright checking and other inspections done during upgrades.  This
is one of my main motivations for using Git.  And within that workflow, the
pristine-tar branch helps me to work off-line.

Have a nice day,


Reply to: