summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--scripts/builder/repository.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/scripts/builder/repository.py b/scripts/builder/repository.py
index 7ea29bb..0efa10b 100644
--- a/scripts/builder/repository.py
+++ b/scripts/builder/repository.py
@@ -1,77 +1,77 @@
1#!/usr/bin/env python 1#!/usr/bin/env python
2# -*- coding: UTF-8 -*- 2# -*- coding: UTF-8 -*-
3 3
4 4
5def repositoryWithPath (path): 5def repositoryWithPath (path):
6 try: 6 try:
7 from dulwich.repo import Repo 7 from git import Repo
8 8
9 repo = Repo(path) 9 repo = Repo(path)
10 result = GitRepository(repo, path) 10 result = GitRepository(repo, path)
11 except ImportError: 11 except ImportError:
12 print "Failed to import dulwich, please install http://www.samba.org/~jelmer/dulwich/" 12 print "Failed to import git, please install http://gitorious.org/git-python"
13 except: 13 except:
14 from mercurial import ui, hg 14 from mercurial import ui, hg
15 15
16 repo = hg.repository(ui.ui(), path) 16 repo = hg.repository(ui.ui(), path)
17 result = HgRepository(repo, path) 17 result = HgRepository(repo, path)
18 18
19 return result 19 return result
20 20
21 21
22#=================================================================== 22#===================================================================
23 23
24 24
25class Repository(object): 25class Repository(object):
26 26
27 def __init__ (self, repository, path): 27 def __init__ (self, repository, path):
28 self.repository = repository 28 self.repository = repository
29 self.path = path 29 self.path = path
30 30
31 31
32 def revision (self): 32 def revision (self):
33 raise NotImplementedError() 33 raise NotImplementedError()
34 34
35 35
36 def areTherePendingChanges (self): 36 def areTherePendingChanges (self):
37 raise NotImplementedError() 37 raise NotImplementedError()
38 38
39 39
40 def version (self): 40 def version (self):
41 result = self.revision() 41 result = self.revision()
42 if self.areTherePendingChanges(): 42 if self.areTherePendingChanges():
43 result = '>>> ' + result + ' <<<' 43 result = '>>> ' + result + ' <<<'
44 44
45 # print "VERSION: " + result 45 # print "VERSION: " + result
46 return result 46 return result
47 47
48 48
49#=================================================================== 49#===================================================================
50 50
51 51
52class GitRepository(Repository): 52class GitRepository(Repository):
53 53
54 def revision (self): 54 def revision (self):
55 return self.repository.refs['HEAD'] 55 return self.repository.head.commit.hexsha
56 56
57 57
58 def areTherePendingChanges (self): 58 def areTherePendingChanges (self):
59 return repository.is_dirty() 59 return self.repository.is_dirty()
60 60
61 61
62#=================================================================== 62#===================================================================
63 63
64 64
65class HgRepository(Repository): 65class HgRepository(Repository):
66 #http://mercurial.selenic.com/wiki/MercurialApi 66 #http://mercurial.selenic.com/wiki/MercurialApi
67 67
68 def revision (self): 68 def revision (self):
69 return 'hg:' + str(self.repository['tip']) 69 return 'hg:' + str(self.repository['tip'])
70 70
71 71
72 def areTherePendingChanges (self): 72 def areTherePendingChanges (self):
73 # TODO: FIXME: repository.status() does not report 'unknown(?)' files. :( 73 # TODO: FIXME: repository.status() does not report 'unknown(?)' files. :(
74 return not all(map(lambda fileList: len(fileList) == 0, self.repository.status())) 74 return not all(map(lambda fileList: len(fileList) == 0, self.repository.status()))
75 75
76 76
77#=================================================================== 77#===================================================================