diff options
-rwxr-xr-x | gbp/scripts/buildpackage.py | 2 | ||||
-rw-r--r-- | tests/component/deb/test_buildpackage.py | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gbp/scripts/buildpackage.py b/gbp/scripts/buildpackage.py index 0922ff9f..e0ae07c7 100755 --- a/gbp/scripts/buildpackage.py +++ b/gbp/scripts/buildpackage.py @@ -794,7 +794,7 @@ def main(argv): 'GBP_BUILD_DIR': build_dir}) )() if options.tag or options.tag_only: - if is_pq_branch(branch): + if branch and is_pq_branch(branch): commit = repo.get_merge_base(branch, pq_branch_base(branch)) else: commit = head diff --git a/tests/component/deb/test_buildpackage.py b/tests/component/deb/test_buildpackage.py index b1499361..1de9be54 100644 --- a/tests/component/deb/test_buildpackage.py +++ b/tests/component/deb/test_buildpackage.py @@ -226,6 +226,22 @@ class TestBuildpackage(ComponentTestBase): eq_(repo.rev_parse('patch-queue/master^{}^'), repo.rev_parse('debian/2.8-1^{}')) @RepoFixtures.quilt30() + def test_tag_detached_head(self, repo): + """ + Test that tagging works with an detached head (#863167) + """ + eq_(repo.rev_parse('master^{}'), repo.rev_parse('debian/2.8-1^{}')) + self.add_file(repo, 'debian/foo.txt') + repo.checkout("HEAD~") + ret = buildpackage(['argv0', + '--git-tag-only', + '--git-retag', + '--git-ignore-branch']) + eq_(ret, 0) + repo.checkout("master") + eq_(repo.rev_parse('master~^{}'), repo.rev_parse('debian/2.8-1^{}')) + + @RepoFixtures.quilt30() def test_broken_upstream_version(self, repo): cl = ChangeLog(filename='debian/changelog') cl.add_section(["broken versionnumber"], |