]> git.leopard-lacewing.eu Git - tex_tools.git/commitdiff
parsing for repo works
authorPeter Schaefer <schaeferpm@gmail.com>
Thu, 14 Feb 2019 19:06:26 +0000 (20:06 +0100)
committerPeter Schaefer <schaeferpm@gmail.com>
Thu, 14 Feb 2019 19:06:26 +0000 (20:06 +0100)
gitLog2tikz.py

index 2121f670436198438f9eb931abf076acdbe0f334..8b017e045db066920289beae1c8a1cb12a6f2bad 100644 (file)
@@ -5,7 +5,8 @@ from re import compile, match
 # Importer fast fertig
 # Aber die light Variante
 
-hashpat = compile(r"[a-f0-9]{7}")
+hashpat7 = compile(r"[a-f0-9]{7}")
+hashpat32 = compile(r"[a-f0-9]{32}")
 linepat = compile(r'[^|\/\\]')
 
 
@@ -45,6 +46,35 @@ class Commit:
         if self._hash:
             self._message = self._message.replace("!","")
 
+
+    def __init__(self,hashes,node_pos,message_pos):
+        self._children = {}
+        self._parents = {}
+        self._message= None
+        self._node_color = None
+        self._author = None
+        self._date = None
+        self._hash = hashes[0]
+        self._node_pos = node_pos
+        self._message_pos = message_pos
+        for parent in hashes[1:]:
+            self._parents[parent] = NotImplemented
+
+    def AddInfo(self,line):
+        line = line[self._message_pos:]
+        info = line.split(':')
+        if info[0] == 'Author':
+            self._author = ':'.join(info[1:]).strip()
+        elif info[0] == 'Date':
+            tmp = ':'.join(info[1:]).strip().split(' ')
+            self._date = tmp[2] + ' ' + tmp[1] + ' ' + tmp[4]
+        elif line[0:4] == '    ':
+            if(self._message):
+                self._message = self._message + "\n" + line[4:]
+            else:
+                self._message = line[4:]
+        return
+
     def update_parent (self, child):
         self._parents[child._hash] = child
         child._children[self._hash] = self
@@ -125,6 +155,7 @@ for line in return_output.split("\n"):
         node_pos = -1
         message_pos = -1
 
+        #Parse Graph
         pos = 0
         for c in line:
             if c == '*':
@@ -134,13 +165,15 @@ for line in return_output.split("\n"):
                 break
             pos = pos + 1
 
-        msg  = line[message_pos:]
-        if node_pos >= 0:
-            com = msg.split(' ')
-        else:
-            inf = msg.split(':')
+        #Parse Msg
+        if node_pos >= 0: #new commit
+            com = line[message_pos:].split(' ')
+            if com[0] == 'commit':
+                comm = Commit(com[1:],node_pos,message_pos)
+            else:
+                print("something went wrong at:" + line)
+        else: #still old commit
+            comm.AddInfo(line)
         
 
 print(node_pos + message_pos)
-
-