Don't regexp out the short-revid in Git._vcs_commit()
authorW. Trevor King <wking@drexel.edu>
Sun, 13 Dec 2009 13:43:01 +0000 (08:43 -0500)
committerW. Trevor King <wking@drexel.edu>
Sun, 13 Dec 2009 13:43:01 +0000 (08:43 -0500)
The output version strings change:
  Version 1.5.4.3:
    Created initial commit 217efa7: MESSAGE
    Created commit acb3066: MESSAGE
  Version 1.6.4.4:
    [master (root-commit) c5b48cf] MESSAGE
    [master 66a48c1] MESSAGE
Instead, get the full revid, and look for its beginning in the output.

libbe/storage/vcs/git.py

index 77ddd88762754d998e01ad85a2538ea0efde169f..6d240c20708704e706bd7181e87a4790d4ca386b 100644 (file)
@@ -130,15 +130,9 @@ class Git(base.VCS):
                        'nothing added to commit']
             if self._u_any_in_string(strings, output) == True:
                 raise base.EmptyCommit()
-        revision = None
-        revline = re.compile('(.*) (.*)[:\]] (.*)')
-        match = revline.search(output)
-        assert match != None, output+error
-        assert len(match.groups()) == 3
-        revision = match.groups()[1]
         full_revision = self._vcs_revision_id(-1)
-        assert full_revision.startswith(revision), \
-            'Mismatched revisions:\n%s\n%s' % (revision, full_revision)
+        assert full_revision[:7] in output, \
+            'Mismatched revisions:\n%s\n%s' % (full_revision, output)
         return full_revision
 
     def _vcs_revision_id(self, index):