mirror of
https://github.com/rpm-software-management/tito.git
synced 2025-02-23 20:22:46 +00:00
Merge pull request #125 from domcleal/git-annex-el6
Support pre-5.20131213 versions of git-annex for EL6
This commit is contained in:
commit
b4c103ea4f
5 changed files with 55 additions and 7 deletions
|
@ -1,5 +1,5 @@
|
|||
# https://index.docker.io/_/centos/
|
||||
FROM tianon/centos:6.4
|
||||
FROM centos:6.4
|
||||
|
||||
# http://jumanjiman.github.io/
|
||||
MAINTAINER Paul Morgan <jumanjiman@gmail.com>
|
||||
|
|
|
@ -1018,5 +1018,19 @@ class GitAnnexBuilder(NoTgzBuilder):
|
|||
os.chdir(old_cwd)
|
||||
|
||||
def cleanup(self):
|
||||
run_command("git-annex lock --force")
|
||||
if _lock_force_supported(_get_annex_version()):
|
||||
run_command("git-annex lock --force")
|
||||
else:
|
||||
run_command("git-annex lock")
|
||||
super(GitAnnexBuilder, self).cleanup()
|
||||
|
||||
def _get_annex_version(self):
|
||||
# git-annex needs to support --force when locking files.
|
||||
ga_version = run_command('git-annex version').split('\n')
|
||||
if ga_version[0].startswith('git-annex version'):
|
||||
ga_version[0].split()[-1]
|
||||
else:
|
||||
return 0
|
||||
|
||||
def _lock_force_supported(self, version):
|
||||
return compare_version(version, '5.20131213') >= 0
|
||||
|
|
|
@ -677,3 +677,13 @@ def find_wrote_in_rpmbuild_output(output):
|
|||
if not paths:
|
||||
error_out("Unable to locate 'Wrote: ' lines in rpmbuild output: '%s'" % output)
|
||||
return paths
|
||||
|
||||
|
||||
def compare_version(version1, version2):
|
||||
"""
|
||||
Compare two version strings, returning negative if version1 is < version2,
|
||||
zero when equal and positive when version1 > version2.
|
||||
"""
|
||||
def normalize(v):
|
||||
return [int(x) for x in re.sub(r'(\.0+)*$', '', v).split(".")]
|
||||
return cmp(normalize(version1), normalize(version2))
|
||||
|
|
|
@ -43,13 +43,9 @@ class GitAnnexBuilderTests(TitoGitTestFixture):
|
|||
if sys.version[0:3] == '2.4':
|
||||
raise SkipTest('git-annex is not available in epel-5')
|
||||
|
||||
# git-annex needs to support --force when locking files.
|
||||
# rpm query is sub-optimal, but older versions do not support `git-annex version'.
|
||||
status, ga_version = getstatusoutput('rpm -q --qf=%{version} git-annex')
|
||||
status, ga_version = getstatusoutput('rpm -q git-annex')
|
||||
if status != 0:
|
||||
raise SkipTest("git-annex is missing")
|
||||
if ga_version < GIT_ANNEX_MINIMUM_VERSION:
|
||||
raise SkipTest("git-annex '%s' is too old" % ga_version)
|
||||
|
||||
# Setup test config:
|
||||
self.config = RawConfigParser()
|
||||
|
@ -91,3 +87,13 @@ class GitAnnexBuilderTests(TitoGitTestFixture):
|
|||
"extsrc-0.0.2-1.*src.rpm"))))
|
||||
self.assertEquals(1, len(glob.glob(join(self.output_dir, 'noarch',
|
||||
"extsrc-0.0.2-1.*.noarch.rpm"))))
|
||||
|
||||
def test_lock_force_supported(self):
|
||||
tito('tag --debug --accept-auto-changelog')
|
||||
builder = GitAnnexBuilder(PKG_NAME, None, self.output_dir,
|
||||
self.config, {}, {}, **{'offline': True})
|
||||
|
||||
self.assertTrue(builder._lock_force_supported('5.20140107'))
|
||||
self.assertTrue(builder._lock_force_supported('5.20131213'))
|
||||
self.assertFalse(builder._lock_force_supported('5.20131127.1'))
|
||||
self.assertFalse(builder._lock_force_supported('3.20120522'))
|
||||
|
|
|
@ -219,3 +219,21 @@ class ExtractBugzillasTest(unittest.TestCase):
|
|||
find_wrote_in_rpmbuild_output(output)
|
||||
|
||||
common.error_out.assert_called_once_with("Unable to locate 'Wrote: ' lines in rpmbuild output: '%s'" % output)
|
||||
|
||||
def test_compare_version(self):
|
||||
self.assertEquals(0, compare_version("1", "1"))
|
||||
self.assertTrue(compare_version("2.1", "2.2") < 0)
|
||||
self.assertTrue(compare_version("3.0.4.10", "3.0.4.2") > 0)
|
||||
self.assertTrue(compare_version("4.08", "4.08.01") < 0)
|
||||
self.assertTrue(compare_version("3.2.1.9.8144", "3.2") > 0)
|
||||
self.assertTrue(compare_version("3.2", "3.2.1.9.8144") < 0)
|
||||
self.assertTrue(compare_version("1.2", "2.1") < 0)
|
||||
self.assertTrue(compare_version("2.1", "1.2") > 0)
|
||||
self.assertTrue(compare_version("1.0", "1.0.1") < 0)
|
||||
self.assertTrue(compare_version("1.0.1", "1.0") > 0)
|
||||
self.assertEquals(0, compare_version("5.6.7", "5.6.7"))
|
||||
self.assertEquals(0, compare_version("1.01.1", "1.1.1"))
|
||||
self.assertEquals(0, compare_version("1.1.1", "1.01.1"))
|
||||
self.assertEquals(0, compare_version("1", "1.0"))
|
||||
self.assertEquals(0, compare_version("1.0", "1"))
|
||||
self.assertEquals(0, compare_version("1.0.2.0", "1.0.2"))
|
||||
|
|
Loading…
Add table
Reference in a new issue