Bug#891091: git-buildpackage: pristine-tar uses unreachable tree for main tarball when components exist

2018-02-22 Thread Guido Günther
On Thu, Feb 22, 2018 at 10:48:25AM +, James Cowgill wrote:
> Package: git-buildpackage
> Version: 0.9.7
> Severity: normal
> 
> Hi,
> 
> I am attempting to use git-buildpackage and pristine-tar with a package
> which uses multiple components. Unfortunately if I clone the repository,
> pristine-tar fails to generate the main tarball:
> 
> > $ pristine-tar checkout ffdiaporama_2.1+dfsg.orig-rsc.tar.gz
> > pristine-tar: successfully generated ffdiaporama_2.1+dfsg.orig-rsc.tar.gz
> > $ pristine-tar checkout ffdiaporama_2.1+dfsg.orig.tar.gz
> > fatal: ambiguous argument 
> > '81c0361de57e9e6c6dc8bf6cd6e9ba6697fb6e53^{tree}': unknown revision or path 
> > not in the working tree.
> > Use '--' to separate paths from revisions, like this:
> > 'git  [...] -- [...]'
> > fatal: Not a valid object name
> > tar: This does not look like a tar archive
> > tar: Exiting with failure status due to previous errors
> > pristine-tar: command failed: git archive --format=tar 
> > 81c0361de57e9e6c6dc8bf6cd6e9ba6697fb6e53\^\{tree\} | (cd 
> > '/tmp/pristine-tar.KmsGn7eSaa' && tar x)

That is perfectly fine and it's why /usr/share/bug/git-buildpackage/presubj is
asking for the _full_ comand outpout:

> 
> The mentioned tree (81c0361de57e9e6c6dc8bf6cd6e9ba6697fb6e53) does not
> exist in the cloned repository but does in the original repository.
> 
> I found this which looks to me exactly the same situation I am in, but I
> could not find a Debian bug so I am filing one now:
> 
> https://lists.sigxcpu.org/pipermail/git-buildpackage/2017-June/000223.html

If you read that thread you see 

https://lists.sigxcpu.org/pipermail/git-buildpackage/2017-July/000240.html

> 
> The gist is that pristine-tar is given a tree object for the main
> tarball without the extra component tarballs, but this tree object is
> never present in the upstream branch and is unreachable from any tags. I
> guess the easiest solution is to pass the final upstream tree (with all
> the components) to pristine-tar when generating the main tarball. This
> might give bigger deltas, but when I tested it with ffdiaporama the
> delta was only a few hundred bytes larger so maybe it's not a big
> problem.

You're very likely missing the --git-component option (see above) which
will be used to create the tree you lack.

O.k. to close this bug?
Cheers
 -- Guido



Bug#891091: git-buildpackage: pristine-tar uses unreachable tree for main tarball when components exist

2018-02-22 Thread James Cowgill
Package: git-buildpackage
Version: 0.9.7
Severity: normal

Hi,

I am attempting to use git-buildpackage and pristine-tar with a package
which uses multiple components. Unfortunately if I clone the repository,
pristine-tar fails to generate the main tarball:

> $ pristine-tar checkout ffdiaporama_2.1+dfsg.orig-rsc.tar.gz
> pristine-tar: successfully generated ffdiaporama_2.1+dfsg.orig-rsc.tar.gz
> $ pristine-tar checkout ffdiaporama_2.1+dfsg.orig.tar.gz
> fatal: ambiguous argument '81c0361de57e9e6c6dc8bf6cd6e9ba6697fb6e53^{tree}': 
> unknown revision or path not in the working tree.
> Use '--' to separate paths from revisions, like this:
> 'git  [...] -- [...]'
> fatal: Not a valid object name
> tar: This does not look like a tar archive
> tar: Exiting with failure status due to previous errors
> pristine-tar: command failed: git archive --format=tar 
> 81c0361de57e9e6c6dc8bf6cd6e9ba6697fb6e53\^\{tree\} | (cd 
> '/tmp/pristine-tar.KmsGn7eSaa' && tar x)

The mentioned tree (81c0361de57e9e6c6dc8bf6cd6e9ba6697fb6e53) does not
exist in the cloned repository but does in the original repository.

I found this which looks to me exactly the same situation I am in, but I
could not find a Debian bug so I am filing one now:

https://lists.sigxcpu.org/pipermail/git-buildpackage/2017-June/000223.html

The gist is that pristine-tar is given a tree object for the main
tarball without the extra component tarballs, but this tree object is
never present in the upstream branch and is unreachable from any tags. I
guess the easiest solution is to pass the final upstream tree (with all
the components) to pristine-tar when generating the main tarball. This
might give bigger deltas, but when I tested it with ffdiaporama the
delta was only a few hundred bytes larger so maybe it's not a big
problem.

Thanks,
James



signature.asc
Description: OpenPGP digital signature