Commit e4310902 authored by Michal Čihař's avatar Michal Čihař

Implement getting git version in VCS module and use it

Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent 03596358
......@@ -21,6 +21,7 @@
# For some reasons, this fails in PyLint sometimes...
# pylint: disable=E0611,F0401
from distutils.version import LooseVersion
from weblate.trans.vcs import GitRepository
import importlib
import sys
......@@ -149,19 +150,12 @@ def get_versions():
'0.5.4',
))
name = 'Git'
url = 'http://git-scm.com/'
mod = get_version_module('git', name, url)
try:
result.append((
name,
url,
mod.Git().version().replace('git version ', ''),
'1.7.2',
))
except TypeError:
# Happens with too old GitPython
pass
result.append((
'Git',
'http://git-scm.com/',
GitRepository.get_version(),
'1.7.2',
))
name = 'South'
url = 'http://south.aeracode.org/'
......
......@@ -111,3 +111,6 @@ class VCSGitTest(RepoTestCase):
repo = GitRepository.clone(self.repo_path, self._tempdir)
self.assertFalse(repo.needs_merge('master'))
self.assertFalse(repo.needs_push('master'))
def test_get_version(self):
self.assertTrue(GitRepository.get_version() != '')
......@@ -164,6 +164,13 @@ class Repository(object):
"""
raise NotImplementedError()
@classmethod
def get_version(cls):
"""
Returns VCS program version.
"""
return cls._popen(['--version'])
class GitRepository(Repository):
"""
......@@ -258,3 +265,10 @@ class GitRepository(Repository):
(has additional revisions).
"""
return self._log_revisions('origin/{0}..'.format(branch)) != ''
@classmethod
def get_version(cls):
"""
Returns VCS program version.
"""
return cls._popen(['--version']).split()[-1]
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment