From c20cfc5f7d0ffdd9fe7f65e2aaad11a4b32ea0c8 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 1 Feb 2012 13:35:33 +0100 Subject: [PATCH] + implement mechanism to extract version number from Git --- src/Tools/SubWCRev.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/Tools/SubWCRev.py b/src/Tools/SubWCRev.py index dc8a4bc32..28835ce36 100644 --- a/src/Tools/SubWCRev.py +++ b/src/Tools/SubWCRev.py @@ -139,8 +139,38 @@ class BazaarControl(VersionControl): print "bazaar" class GitControl(VersionControl): + #http://www.hermanradtke.com/blog/canonical-version-numbers-with-git/ + #http://blog.marcingil.com/2011/11/creating-build-numbers-using-git-commits/ + #http://gitref.org/remotes/#fetch + #http://cworth.org/hgbook-git/tour/ + #http://git.or.cz/course/svn.html + #git help log def extractInfo(self, srcdir): - return False + # revision number + info=os.popen("git rev-list HEAD").read() + if len(info) == 0: + return False + self.rev='%04d (Git)' % (info.count('\n')) + self.range='%04d' % (info.count('\n')) + # date/time + info=os.popen("git log -1 --date=iso").read() + info=info.split("\n") + for i in info: + r = re.match("^Date:\\W+(\\d+-\\d+-\\d+\\W+\\d+:\\d+:\\d+)", i) + if r != None: + self.date = r.groups()[0].replace('-','/') + self.time = self.date + break + #self.time = time.strftime("%Y/%m/%d %H:%M:%S") + self.url = "Unknown" + info=os.popen("git remote -v").read() + info=info.split("\n") + for i in info: + r = re.match("origin\\W+(\\S+)",i) + if r != None: + self.url = r.groups()[0] + break + return True def printInfo(self): print "git"