# 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'[^|\/\\]')
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
node_pos = -1
message_pos = -1
+ #Parse Graph
pos = 0
for c in line:
if c == '*':
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)
-
-