comp_type = 'auto'
if comp_type == 'auto':
- if repo and repo.has_pristine_tar_branch():
+ branch = None
+ if repo.has_branch('pristine-tar'):
+ branch = 'pristine-tar'
+ elif repo.has_branch('origin/pristine-tar', remote=True):
+ branch = 'origin/pristine-tar'
+
+ if branch:
regex = r'pristine-tar .* %s_%s\.orig.tar\.' % (source.name, source.upstream_version)
- commits = repo.grep_log(regex, repo.pristine_tar_branch, merges=False)
+ commits = repo.grep_log(regex, branch, merges=False)
if commits:
commit = commits[-1]
gbp.log.debug("Found pristine-tar commit at '%s'" % commit)
else:
- commit = repo.pristine_tar_branch
+ commit = branch
tarball = repo.get_commit_info(commit)['subject']
(base_name, archive_fmt, comp_type) = Archive.parse_filename(tarball)
gbp.log.debug("Determined compression type '%s'" % comp_type)
comp_type = 'gzip'
gbp.log.warn("Unknown compression type of %s, assuming %s" % (tarball, comp_type))
else:
- if not tarball_dir:
- tarball_dir = '..'
+ tarball_dir = tarball_dir or '..'
detected = None
for comp in Compressor.Opts.keys():
if du.DebianPkgPolicy.has_orig(source.upstream_tarball_name(comp), tarball_dir):
from tests.component import (ComponentTestBase,
ComponentTestGitRepository)
from tests.component.deb import DEB_TEST_DATA_DIR
+from tests.component.deb.fixtures import RepoFixtures
from nose.tools import ok_, assert_false, assert_true
+from gbp.scripts.clone import main as clone
from gbp.scripts.import_dsc import main as import_dsc
from gbp.scripts.export_orig import main as export_orig
for t in tarballs:
self.assertFalse(os.path.exists(os.path.join('..', t)), "Tarball %s found" % t)
self.assertTrue(os.path.exists(os.path.join(DEB_TEST_DATA_DIR, 'foo-2.8', t)), "Tarball %s not found" % t)
+
+ @RepoFixtures.quilt30(opts=['--pristine-tar'])
+ def test_pristine_tar_commit_on_origin(self, repo):
+ """Test that we can create tarball from 'origin/pristine-tar'"""
+
+ assert_true(repo.has_branch('pristine-tar'),
+ "Pristine-tar branch must exist in origin")
+ dest = os.path.join(self._tmpdir, 'cloned_repo')
+ clone(['arg0', repo.path, dest])
+ cloned = ComponentTestGitRepository(dest)
+
+ os.chdir(cloned.path)
+ assert_false(cloned.has_branch('pristine-tar'),
+ "Pristine-tar branch must not exist in clone")
+ ret = export_orig(['arg0', '--pristine-tar'])
+ ok_(ret == 0, "Exporting tarballs must not fail")