From: Ralf Jung Date: Wed, 13 Feb 2013 16:15:40 +0000 (+0100) Subject: Use 'git describe' to get current version number in checkVersions() X-Git-Url: https://git.ralfj.de/mass-build.git/commitdiff_plain/1c97a041534e9aacaba12939729eb1ab3ea3d798 Use 'git describe' to get current version number in checkVersions() The old method could not deal well with multiple tags for the same commit --- diff --git a/vcs.py b/vcs.py index d6e2028..73ffb10 100644 --- a/vcs.py +++ b/vcs.py @@ -86,24 +86,18 @@ class Git: def version(self): repo = git.Repo(self.folder) v = repo.git.describe() - return v[len(get_non_digit_prefix(v)):] # remove the letter prefix from v (so that it starts with a number) + return v[len(get_non_digit_prefix(v)):] # remove the non-digit prefix from v (so that it starts with a number) def checkVersions(self): - self.update(mode = MODE_FETCH) + self.update(mode = MODE_FETCH) repo = git.Repo(self.folder) - # get tag name for current commit, if any - commit = repo.commit(self.commit) - commitTag = filter(lambda t: t.commit == commit, repo.tags) - if not commitTag: - print "Version is not a tag" - return - currentVersion = str(commitTag[0]) - # get sorted list of tag names with the same letter prefix and higher version number + currentVersion = repo.git.describe() + # get sorted list of tag names with the same non-digit prefix and higher version number tags = map(str, repo.tags) tags = filter(lambda t: get_non_digit_prefix(t) == get_non_digit_prefix(currentVersion) and natural_sort_key(t) > natural_sort_key(currentVersion), tags) if not tags: return tags.sort(key = natural_sort_key) - print "Versions newer than "+self.commit+" available:" + print "Versions newer than "+currentVersion+" available:" print tags # Fetch updates via SVN