author | Clipperz <info@clipperz.com> | 2013-01-08 15:12:19 (UTC) |
---|---|---|
committer | Clipperz <info@clipperz.com> | 2013-01-08 15:12:19 (UTC) |
commit | 25bd3085c5464862172c5bd921deca550185fe83 (patch) (side-by-side diff) | |
tree | 2ea95bdd3606e9721fac81ab072d093fd46005fe /scripts/builder/repository.py | |
parent | 596e94dca490619acced2e38fb3221cc7237b1ce (diff) | |
download | clipperz-25bd3085c5464862172c5bd921deca550185fe83.zip clipperz-25bd3085c5464862172c5bd921deca550185fe83.tar.gz clipperz-25bd3085c5464862172c5bd921deca550185fe83.tar.bz2 |
Updated builder script
Diffstat (limited to 'scripts/builder/repository.py') (more/less context) (ignore whitespace changes)
-rw-r--r-- | scripts/builder/repository.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/scripts/builder/repository.py b/scripts/builder/repository.py index 0045de7..a47e249 100644 --- a/scripts/builder/repository.py +++ b/scripts/builder/repository.py @@ -11,71 +11,78 @@ def repositoryWithPath (path): except: try: from git import Repo repo = Repo(path) result = GitRepository(repo, path) except ImportError, exception: print "Failed to import git, please install http://gitorious.org/git-python" raise exception return result #=================================================================== class Repository(object): def __init__ (self, repository, path): self.repository = repository self.path = path def revision (self): raise NotImplementedError() def areTherePendingChanges (self): raise NotImplementedError() def version (self): result = self.revision() if self.areTherePendingChanges(): result = '>>> ' + result + ' <<<' # print "VERSION: " + result return result #=================================================================== class GitRepository(Repository): # http://gitorious.org/git-python def revision (self): - return self.repository.head.commit.hexsha + try: + return self.repository.head.commit.hexsha + except: + return self.repository.commits()[0].id def areTherePendingChanges (self): - return self.repository.is_dirty() + try: + return self.repository.is_dirty() + except TypeError, te: + return self.repository.is_dirty + #=================================================================== class HgRepository(Repository): # http://mercurial.selenic.com/wiki/MercurialApi def revision (self): return 'hg:' + str(self.repository['tip']) def areTherePendingChanges (self): # TODO: FIXME: repository.status() does not report 'unknown(?)' files. :( return not all(map(lambda fileList: len(fileList) == 0, self.repository.status())) #=================================================================== |