From f777a46d612f4d1727f1947f191b46bcacb5f378 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Mon, 27 Nov 2017 19:59:32 +0100 Subject: guess_version_from_upstream: allow to work without a changelog This makes it usable when creating changelogs but it can also be useful when we don't want to compare to changelog version. Gbp-Dch: Ignore --- gbp/scripts/dch.py | 8 +++++--- tests/03_test_dch_guess_version.py | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/gbp/scripts/dch.py b/gbp/scripts/dch.py index 9db1a233..0d66a801 100644 --- a/gbp/scripts/dch.py +++ b/gbp/scripts/dch.py @@ -36,18 +36,20 @@ user_customizations = {} snapshot_re = re.compile("\s*\*\* SNAPSHOT build @(?P[a-z0-9]+)\s+\*\*") -def guess_version_from_upstream(repo, upstream_tag_format, upstream_branch, cp): +def guess_version_from_upstream(repo, upstream_tag_format, upstream_branch, cp=None): """ Guess the version based on the latest version on the upstream branch. If the version in dch is already higher this function returns None. """ + epoch = cp.epoch if cp else None + cmp_version = cp.version if cp else '0~' try: version = repo.debian_version_from_upstream(upstream_tag_format, upstream_branch, - epoch=cp.epoch, + epoch=epoch, debian_release=False) gbp.log.debug("Found upstream version %s." % version) - if compare_versions(version, cp.version) > 0: + if compare_versions(version, cmp_version) > 0: return "%s-1" % version except GitRepositoryError as e: gbp.log.debug("No upstream tag found: %s" % e) diff --git a/tests/03_test_dch_guess_version.py b/tests/03_test_dch_guess_version.py index 1677b4ab..37f6da35 100644 --- a/tests/03_test_dch_guess_version.py +++ b/tests/03_test_dch_guess_version.py @@ -117,3 +117,20 @@ class TestGuessVersionFromUpstream(testutils.DebianGitTestRepo): upstream_branch, cp) self.assertEqual('1.1~rc1-1', guessed) + + def test_no_changelog(self): + tagformat = 'upstream/%(version)s' + uversion = '1.1' + upstream_branch = 'upstream' + + self.add_file('doesnot', 'matter') + self.repo.create_branch('upstream') + tag = self.repo.version_to_tag(tagformat, uversion) + self.repo.create_tag(name=tag, msg="Upstream release %s" % uversion, + sign=False) + self.repo.set_branch("master") + guessed = dch.guess_version_from_upstream(self.repo, + tagformat, + upstream_branch, + None) + self.assertEqual('1.1-1', guessed) -- cgit v1.2.3