From: Peter Schaefer Date: Thu, 14 Feb 2019 19:06:26 +0000 (+0100) Subject: parsing for repo works X-Git-Tag: v1.1~4 X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=cc9a3cab4d181c0530ac01954205aeaddbe72554;p=tex_tools.git parsing for repo works --- diff --git a/gitLog2tikz.py b/gitLog2tikz.py index 2121f67..8b017e0 100644 --- a/gitLog2tikz.py +++ b/gitLog2tikz.py @@ -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) - -