--- /dev/null
+\begin{tikzpicture}
+\tikzstyle{commit}=[draw,circle,fill=white,inner sep=0pt,minimum size=5pt]
+\tikzstyle{every path}=[draw]
+\tikzstyle{branch}=[draw,rectangle,rounded corners=3,fill=white,inner sep=2pt,minimum size=5pt]
+\node[commit, black, fill=black] (a6f6d74) at (0.0,0) {};
+\node[right,xshift=10] (labela6f6d74) at (a6f6d74.east) {\verb!a6f6d74: Grober Latex Test!};
+\node[commit, black, fill=black] (d78896f) at (0.0,0.5) {};
+\node[right,xshift=10] (labeld78896f) at (d78896f.east) {\verb!d78896f: [doc] kleine änderrung!};
+\node[commit, black, fill=black] (e5c3cd5) at (0.0,1.0) {};
+\node[right,xshift=10] (labele5c3cd5) at (e5c3cd5.east) {\verb!e5c3cd5: added Ruby Skript!};
+\node[commit, black, fill=black] (9ebee64) at (0.0,1.5) {};
+\node[right,xshift=10] (label9ebee64) at (9ebee64.east) {\verb!9ebee64: [py] init & git shell!};
+\node[commit, black, fill=black] (afd6f5a) at (0.0,2.0) {};
+\node[right,xshift=10] (labelafd6f5a) at (afd6f5a.east) {\verb!afd6f5a: [py] Commit funktioniert!};
+\node[commit, black, fill=black] (3dbbd41) at (0.0,2.5) {};
+\node[right,xshift=10] (label3dbbd41) at (3dbbd41.east) {\verb!3dbbd41: [py] commit & branch läuft!};
+\node[commit, black, fill=black] (da268ea) at (0.0,3.0) {};
+\node[right,xshift=10] (labelda268ea) at (da268ea.east) {\verb!da268ea: [py] Export copy finished!};
+\node[commit, black, fill=black] (1af283b) at (0.0,3.5) {};
+\node[right,xshift=10] (label1af283b) at (1af283b.east) {\verb!1af283b: [py] some. comments!};
+\node[commit, blue, fill=blue] (69be133) at (0.5,4.0) {};
+\node[right,xshift=10] (label69be133) at (69be133.east) {\verb!69be133: [py]minor bugfix!};
+\node[commit, black, fill=black] (7ac7de4) at (0.0,4.5) {};
+\node[right,xshift=10] (label7ac7de4) at (7ac7de4.east) {\verb!7ac7de4: Merge branch 'master' into feature/python!};
+\node[commit, black, fill=black] (8a5d531) at (0.0,5.0) {};
+\node[right,xshift=10] (label8a5d531) at (8a5d531.east) {\verb!8a5d531: [py] minor fix!};
+\node[commit, black, fill=black] (2256509) at (0.0,5.5) {};
+\node[right,xshift=10] (label2256509) at (2256509.east) {\verb!2256509: [py] fixed automatic colors!};
+\node[commit, black, fill=black] (6e41ab0) at (0.0,6.0) {};
+\node[right,xshift=10] (label6e41ab0) at (6e41ab0.east) {\verb!6e41ab0: [py] fixed order!};
+\node[commit, blue, fill=blue] (16d4f59) at (0.5,6.5) {};
+\node[right,xshift=10] (label16d4f59) at (16d4f59.east) {\verb!16d4f59: [doc] test!};
+\node[commit, black, fill=black] (53e02cf) at (0.0,7.0) {};
+\node[right,xshift=10] (label53e02cf) at (53e02cf.east) {\verb!53e02cf: [doc] test!};
+\node[commit, black, fill=black] (8dde7ec) at (0.0,7.5) {};
+\node[right,xshift=10] (label8dde7ec) at (8dde7ec.east) {\verb!8dde7ec: [doc] neues Hooks!};
+\node[commit, black, fill=black] (8024ece) at (0.0,8.0) {};
+\node[right,xshift=10] (label8024ece) at (8024ece.east) {\verb!8024ece: [doc] hook test!};
+\node[commit, black, fill=black] (7ef61eb) at (0.0,8.5) {};
+\node[right,xshift=10] (label7ef61eb) at (7ef61eb.east) {\verb!7ef61eb: [doc] hooktest 2!};
+\node[commit, blue, fill=blue] (d2bf877) at (0.5,9.0) {};
+\node[right,xshift=10] (labeld2bf877) at (d2bf877.east) {\verb!d2bf877: [py] new git order!};
+\node[commit, blue, fill=blue] (6b30984) at (0.5,9.5) {};
+\node[right,xshift=10] (label6b30984) at (6b30984.east) {\verb!6b30984: [py] 2new git order!};
+\node[commit, brown, fill=brown] (feccffc) at (1.0,10.0) {};
+\node[right,xshift=10] (labelfeccffc) at (feccffc.east) {\verb!feccffc: Merge branch 'develop'!};
+\node[commit, brown, fill=brown] (1b6432e) at (1.0,10.5) {};
+\node[right,xshift=10] (label1b6432e) at (1b6432e.east) {\verb!1b6432e: merge successful!};
+\node[commit, blue, fill=blue] (827f503) at (0.5,11.0) {};
+\node[right,xshift=10] (label827f503) at (827f503.east) {\verb!827f503: [doc] Features/Bugs [py] reversed changed!};
+\node[commit, blue, fill=blue] (0ee95d1) at (0.5,11.5) {};
+\node[right,xshift=10] (label0ee95d1) at (0ee95d1.east) {\verb!0ee95d1: [doc] Hook test!};
+\node[commit, blue, fill=blue] (0009b09) at (0.5,12.0) {};
+\node[right,xshift=10] (label0009b09) at (0009b09.east) {\verb!0009b09: [doc] Hook2 test!};
+\node[commit, blue, fill=blue] (494a6ba) at (0.5,12.5) {};
+\node[right,xshift=10] (label494a6ba) at (494a6ba.east) {\verb!494a6ba: [doc] Hook2 test!};
+\node[commit, blue, fill=blue] (ddec20f) at (0.5,13.0) {};
+\node[right,xshift=10] (labelddec20f) at (ddec20f.east) {\verb!ddec20f: [doc] lsting Hooks!};
+\node[commit, brown, fill=brown] (65dae54) at (1.0,13.5) {};
+\node[right,xshift=10] (label65dae54) at (65dae54.east) {\verb!65dae54: Merge branch 'develop'!};
+\node[commit, black, fill=black] (d477a13) at (0.0,14.0) {};
+\node[right,xshift=10] (labeld477a13) at (d477a13.east) {\verb!d477a13: [doc] neuer Branch !};
+\node[commit, blue, fill=blue] (71f4986) at (0.5,14.5) {};
+\node[right,xshift=10] (label71f4986) at (71f4986.east) {\verb!71f4986: [py] better color function!};
+\node[commit, black, fill=black] (7c94d50) at (0.0,15.0) {};
+\node[right,xshift=10] (label7c94d50) at (7c94d50.east) {\verb!7c94d50: Merge branch 'develop' into feature/python2!};
+\node[commit, black, fill=black] (52b6561) at (0.0,15.5) {};
+\node[right,xshift=10] (label52b6561) at (52b6561.east) {\verb!52b6561: minor PyUpdate Fix Front parsing works basic!};
+\node[commit, black, fill=black] (cc9a3ca) at (0.0,16.0) {};
+\node[right,xshift=10] (labelcc9a3ca) at (cc9a3ca.east) {\verb!cc9a3ca: parsing for repo works!};
+\node[commit, black, fill=black] (769f9d1) at (0.0,16.5) {};
+\node[right,xshift=10] (label769f9d1) at (769f9d1.east) {\verb!769f9d1: new Hashing, resolve Parents works!};
+\node[commit, black, fill=black] (a53824c) at (0.0,17.0) {};
+\node[right,xshift=10] (labela53824c) at (a53824c.east) {\verb!a53824c: fixed some issues!};
+\node[commit, black, fill=black] (0f95945) at (0.0,17.5) {};
+\node[right,xshift=10] (label0f95945) at (0f95945.east) {\verb!0f95945: . fix for messages!};
+\node[commit, black, fill=black] (a0c0aef) at (0.0,18.0) {};
+\node[right,xshift=10] (labela0c0aef) at (a0c0aef.east) {\verb!a0c0aef: branches get loaded correctly!};
+\node[commit, black, fill=black] (625259d) at (0.0,18.5) {};
+\node[right,xshift=10] (label625259d) at (625259d.east) {\verb!625259d: save Merged Info!};
+\node[commit, black, fill=black] (d151979) at (0.0,19.0) {};
+\node[right,xshift=10] (labeld151979) at (d151979.east) {\verb!d151979: -o functioniert (traumhaft)!};
+\node[commit, black, fill=black] (2d3b28d) at (0.0,19.5) {};
+\node[right,xshift=10] (label2d3b28d) at (2d3b28d.east) {\verb!2d3b28d: -o functioniert (traumhaft)!};
+\path[black] (d151979) to[out=90,in=-90] (2d3b28d);
+\path[black] (625259d) to[out=90,in=-90] (d151979);
+\path[black] (a0c0aef) to[out=90,in=-90] (625259d);
+\path[black] (0f95945) to[out=90,in=-90] (a0c0aef);
+\path[black] (a53824c) to[out=90,in=-90] (0f95945);
+\path[black] (769f9d1) to[out=90,in=-90] (a53824c);
+\path[black] (cc9a3ca) to[out=90,in=-90] (769f9d1);
+\path[black] (52b6561) to[out=90,in=-90] (cc9a3ca);
+\path[black] (7c94d50) to[out=90,in=-90] (52b6561);
+\path[blue] (71f4986) to[out=90,in=-90] (7c94d50);
+\path[black] (d477a13) to[out=90,in=-90] (7c94d50);
+\path[blue] (ddec20f) to[out=90,in=-90] (71f4986);
+\path[blue] (ddec20f) to[out=90,in=-90] (65dae54);
+\path[blue] (494a6ba) to[out=90,in=-90] (ddec20f);
+\path[blue] (0009b09) to[out=90,in=-90] (494a6ba);
+\path[blue] (0ee95d1) to[out=90,in=-90] (0009b09);
+\path[blue] (827f503) to[out=90,in=-90] (0ee95d1);
+\path[brown] (1b6432e) to[out=90,in=-90] (65dae54);
+\path[brown] (feccffc) to[out=90,in=-90] (1b6432e);
+\path[blue] (6b30984) to[out=90,in=-90] (827f503);
+\path[blue] (6b30984) to[out=90,in=-90] (feccffc);
+\path[blue] (d2bf877) to[out=90,in=-90] (6b30984);
+\path[black] (7ef61eb) to[out=90,in=-90] (d477a13);
+\path[black] (7ef61eb) to[out=90,in=-90] (d2bf877);
+\path[black] (8024ece) to[out=90,in=-90] (7ef61eb);
+\path[black] (8dde7ec) to[out=90,in=-90] (8024ece);
+\path[black] (53e02cf) to[out=90,in=-90] (8dde7ec);
+\path[blue] (16d4f59) to[out=90,in=-90] (feccffc);
+\path[black] (6e41ab0) to[out=90,in=-90] (53e02cf);
+\path[black] (6e41ab0) to[out=90,in=-90] (16d4f59);
+\path[black] (2256509) to[out=90,in=-90] (6e41ab0);
+\path[black] (8a5d531) to[out=90,in=-90] (2256509);
+\path[black] (7ac7de4) to[out=90,in=-90] (8a5d531);
+\path[blue] (69be133) to[out=90,in=-90] (7ac7de4);
+\path[black] (1af283b) to[out=90,in=-90] (7ac7de4);
+\path[black] (da268ea) to[out=90,in=-90] (69be133);
+\path[black] (da268ea) to[out=90,in=-90] (1af283b);
+\path[black] (3dbbd41) to[out=90,in=-90] (da268ea);
+\path[black] (afd6f5a) to[out=90,in=-90] (3dbbd41);
+\path[black] (9ebee64) to[out=90,in=-90] (afd6f5a);
+\path[black] (e5c3cd5) to[out=90,in=-90] (9ebee64);
+\path[black] (d78896f) to[out=90,in=-90] (e5c3cd5);
+\path[black] (a6f6d74) to[out=90,in=-90] (d78896f);
+\node[branch,right,xshift=10] (develop) at (labela0c0aef.east) {\lstinline{develop}};
+\node[branch,right,xshift=10] (feature/python2) at (label2d3b28d.east) {\lstinline{feature/python2}};
+\node[branch,right,xshift=10] (master) at (label65dae54.east) {\lstinline{master}};
+\node[branch,right,xshift=10] (origin/HEAD) at (label65dae54.east) {\lstinline{origin/HEAD}};
+\node[branch,right,xshift=10] (origin/develop) at (label71f4986.east) {\lstinline{origin/develop}};
+\node[branch,right,xshift=10] (origin/feature/python) at (label6b30984.east) {\lstinline{origin/feature/python}};
+\node[branch,right,xshift=10] (origin/feature/python2) at (label769f9d1.east) {\lstinline{origin/feature/python2}};
+\node[branch,right,xshift=10] (origin/master) at (label65dae54.east) {\lstinline{origin/master}};
+\end{tikzpicture}
--- /dev/null
+\begin{tabular}{!{\color{lightgray}\vline}c!{\color{lightgray}\vline}c!{\color{lightgray}\vline}c!{\color{lightgray}\vline}}
+\arrayrulecolor{lightgray}\hline
+Date & Changes & Author\\
+17 Feb 2019&started table output&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+17 Feb 2019&-o functioniert (traumhaft)&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+17 Feb 2019&-o functioniert (traumhaft)&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+17 Feb 2019&branches get loaded correctly&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+17 Feb 2019&! fix for messages&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+17 Feb 2019&fixed some issues&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&Merge branch 'develop' into feature/python2&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[py] better color function&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] lsting Hooks&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] Hook2 test&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] Hook2 test&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] Hook test&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] Features/Bugs
+[py] reversed changed&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[py] 2new git order&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[py] new git order&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] neuer Branch&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] hooktest 2&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+3 Jan 2019&[doc] hook test&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[doc] neues Hooks&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[doc] test&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[py] fixed order&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[py] fixed automatic colors&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[py] minor fix&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[py]minor bugfix&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[py] Export copy finished&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&[doc] kleine änderrung&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+2 Jan 2019&Grober Latex Test&\href{mailto:schaeferpm@gmail.com}{Peter Schaefer}\\
+\arrayrulecolor{lightgray}\hline
+\arrayrulecolor{lightgray}\hline
+\end{tabular}
+++ /dev/null
-\begin{tikzpicture}
-\tikzstyle{commit}=[draw,circle,fill=white,inner sep=0pt,minimum size=5pt]
-\tikzstyle{every path}=[draw]
-\tikzstyle{branch}=[draw,rectangle,rounded corners=3,fill=white,inner sep=2pt,minimum size=5pt]
-\node[commit, black, fill=black] (a6f6d74) at (0.0,0) {};
-\node[right,xshift=10] (labela6f6d74) at (a6f6d74.east) {\verb!a6f6d74: Grober Latex Test!};
-\node[commit, black, fill=black] (d78896f) at (0.0,0.5) {};
-\node[right,xshift=10] (labeld78896f) at (d78896f.east) {\verb!d78896f: [doc] kleine änderrung!};
-\node[commit, black, fill=black] (e5c3cd5) at (0.0,1.0) {};
-\node[right,xshift=10] (labele5c3cd5) at (e5c3cd5.east) {\verb!e5c3cd5: added Ruby Skript!};
-\node[commit, black, fill=black] (9ebee64) at (0.0,1.5) {};
-\node[right,xshift=10] (label9ebee64) at (9ebee64.east) {\verb!9ebee64: [py] init & git shell!};
-\node[commit, black, fill=black] (afd6f5a) at (0.0,2.0) {};
-\node[right,xshift=10] (labelafd6f5a) at (afd6f5a.east) {\verb!afd6f5a: [py] Commit funktioniert!};
-\node[commit, black, fill=black] (3dbbd41) at (0.0,2.5) {};
-\node[right,xshift=10] (label3dbbd41) at (3dbbd41.east) {\verb!3dbbd41: [py] commit & branch läuft!};
-\node[commit, black, fill=black] (da268ea) at (0.0,3.0) {};
-\node[right,xshift=10] (labelda268ea) at (da268ea.east) {\verb!da268ea: [py] Export copy finished!};
-\node[commit, black, fill=black] (1af283b) at (0.0,3.5) {};
-\node[right,xshift=10] (label1af283b) at (1af283b.east) {\verb!1af283b: [py] some. comments!};
-\node[commit, blue, fill=blue] (69be133) at (0.5,4.0) {};
-\node[right,xshift=10] (label69be133) at (69be133.east) {\verb!69be133: [py]minor bugfix!};
-\node[commit, black, fill=black] (7ac7de4) at (0.0,4.5) {};
-\node[right,xshift=10] (label7ac7de4) at (7ac7de4.east) {\verb!7ac7de4: Merge branch 'master' into feature/python!};
-\node[commit, black, fill=black] (8a5d531) at (0.0,5.0) {};
-\node[right,xshift=10] (label8a5d531) at (8a5d531.east) {\verb!8a5d531: [py] minor fix!};
-\node[commit, black, fill=black] (2256509) at (0.0,5.5) {};
-\node[right,xshift=10] (label2256509) at (2256509.east) {\verb!2256509: [py] fixed automatic colors!};
-\node[commit, black, fill=black] (6e41ab0) at (0.0,6.0) {};
-\node[right,xshift=10] (label6e41ab0) at (6e41ab0.east) {\verb!6e41ab0: [py] fixed order!};
-\node[commit, blue, fill=blue] (16d4f59) at (0.5,6.5) {};
-\node[right,xshift=10] (label16d4f59) at (16d4f59.east) {\verb!16d4f59: [doc] test!};
-\node[commit, black, fill=black] (53e02cf) at (0.0,7.0) {};
-\node[right,xshift=10] (label53e02cf) at (53e02cf.east) {\verb!53e02cf: [doc] test!};
-\node[commit, black, fill=black] (8dde7ec) at (0.0,7.5) {};
-\node[right,xshift=10] (label8dde7ec) at (8dde7ec.east) {\verb!8dde7ec: [doc] neues Hooks!};
-\node[commit, black, fill=black] (8024ece) at (0.0,8.0) {};
-\node[right,xshift=10] (label8024ece) at (8024ece.east) {\verb!8024ece: [doc] hook test!};
-\node[commit, black, fill=black] (7ef61eb) at (0.0,8.5) {};
-\node[right,xshift=10] (label7ef61eb) at (7ef61eb.east) {\verb!7ef61eb: [doc] hooktest 2!};
-\node[commit, blue, fill=blue] (d2bf877) at (0.5,9.0) {};
-\node[right,xshift=10] (labeld2bf877) at (d2bf877.east) {\verb!d2bf877: [py] new git order!};
-\node[commit, blue, fill=blue] (6b30984) at (0.5,9.5) {};
-\node[right,xshift=10] (label6b30984) at (6b30984.east) {\verb!6b30984: [py] 2new git order!};
-\node[commit, brown, fill=brown] (feccffc) at (1.0,10.0) {};
-\node[right,xshift=10] (labelfeccffc) at (feccffc.east) {\verb!feccffc: Merge branch 'develop'!};
-\node[commit, brown, fill=brown] (1b6432e) at (1.0,10.5) {};
-\node[right,xshift=10] (label1b6432e) at (1b6432e.east) {\verb!1b6432e: merge successful!};
-\node[commit, blue, fill=blue] (827f503) at (0.5,11.0) {};
-\node[right,xshift=10] (label827f503) at (827f503.east) {\verb!827f503: [doc] Features/Bugs [py] reversed changed!};
-\node[commit, blue, fill=blue] (0ee95d1) at (0.5,11.5) {};
-\node[right,xshift=10] (label0ee95d1) at (0ee95d1.east) {\verb!0ee95d1: [doc] Hook test!};
-\node[commit, blue, fill=blue] (0009b09) at (0.5,12.0) {};
-\node[right,xshift=10] (label0009b09) at (0009b09.east) {\verb!0009b09: [doc] Hook2 test!};
-\node[commit, blue, fill=blue] (494a6ba) at (0.5,12.5) {};
-\node[right,xshift=10] (label494a6ba) at (494a6ba.east) {\verb!494a6ba: [doc] Hook2 test!};
-\node[commit, blue, fill=blue] (ddec20f) at (0.5,13.0) {};
-\node[right,xshift=10] (labelddec20f) at (ddec20f.east) {\verb!ddec20f: [doc] lsting Hooks!};
-\node[commit, brown, fill=brown] (65dae54) at (1.0,13.5) {};
-\node[right,xshift=10] (label65dae54) at (65dae54.east) {\verb!65dae54: Merge branch 'develop'!};
-\node[commit, black, fill=black] (d477a13) at (0.0,14.0) {};
-\node[right,xshift=10] (labeld477a13) at (d477a13.east) {\verb!d477a13: [doc] neuer Branch !};
-\node[commit, blue, fill=blue] (71f4986) at (0.5,14.5) {};
-\node[right,xshift=10] (label71f4986) at (71f4986.east) {\verb!71f4986: [py] better color function!};
-\node[commit, black, fill=black] (7c94d50) at (0.0,15.0) {};
-\node[right,xshift=10] (label7c94d50) at (7c94d50.east) {\verb!7c94d50: Merge branch 'develop' into feature/python2!};
-\node[commit, black, fill=black] (52b6561) at (0.0,15.5) {};
-\node[right,xshift=10] (label52b6561) at (52b6561.east) {\verb!52b6561: minor PyUpdate Fix Front parsing works basic!};
-\node[commit, black, fill=black] (cc9a3ca) at (0.0,16.0) {};
-\node[right,xshift=10] (labelcc9a3ca) at (cc9a3ca.east) {\verb!cc9a3ca: parsing for repo works!};
-\node[commit, black, fill=black] (769f9d1) at (0.0,16.5) {};
-\node[right,xshift=10] (label769f9d1) at (769f9d1.east) {\verb!769f9d1: new Hashing, resolve Parents works!};
-\node[commit, black, fill=black] (a53824c) at (0.0,17.0) {};
-\node[right,xshift=10] (labela53824c) at (a53824c.east) {\verb!a53824c: fixed some issues!};
-\node[commit, black, fill=black] (0f95945) at (0.0,17.5) {};
-\node[right,xshift=10] (label0f95945) at (0f95945.east) {\verb!0f95945: . fix for messages!};
-\node[commit, black, fill=black] (a0c0aef) at (0.0,18.0) {};
-\node[right,xshift=10] (labela0c0aef) at (a0c0aef.east) {\verb!a0c0aef: branches get loaded correctly!};
-\node[commit, black, fill=black] (625259d) at (0.0,18.5) {};
-\node[right,xshift=10] (label625259d) at (625259d.east) {\verb!625259d: save Merged Info!};
-\node[commit, black, fill=black] (d151979) at (0.0,19.0) {};
-\node[right,xshift=10] (labeld151979) at (d151979.east) {\verb!d151979: -o functioniert (traumhaft)!};
-\node[commit, black, fill=black] (2d3b28d) at (0.0,19.5) {};
-\node[right,xshift=10] (label2d3b28d) at (2d3b28d.east) {\verb!2d3b28d: -o functioniert (traumhaft)!};
-\path[black] (d151979) to[out=90,in=-90] (2d3b28d);
-\path[black] (625259d) to[out=90,in=-90] (d151979);
-\path[black] (a0c0aef) to[out=90,in=-90] (625259d);
-\path[black] (0f95945) to[out=90,in=-90] (a0c0aef);
-\path[black] (a53824c) to[out=90,in=-90] (0f95945);
-\path[black] (769f9d1) to[out=90,in=-90] (a53824c);
-\path[black] (cc9a3ca) to[out=90,in=-90] (769f9d1);
-\path[black] (52b6561) to[out=90,in=-90] (cc9a3ca);
-\path[black] (7c94d50) to[out=90,in=-90] (52b6561);
-\path[blue] (71f4986) to[out=90,in=-90] (7c94d50);
-\path[black] (d477a13) to[out=90,in=-90] (7c94d50);
-\path[blue] (ddec20f) to[out=90,in=-90] (71f4986);
-\path[blue] (ddec20f) to[out=90,in=-90] (65dae54);
-\path[blue] (494a6ba) to[out=90,in=-90] (ddec20f);
-\path[blue] (0009b09) to[out=90,in=-90] (494a6ba);
-\path[blue] (0ee95d1) to[out=90,in=-90] (0009b09);
-\path[blue] (827f503) to[out=90,in=-90] (0ee95d1);
-\path[brown] (1b6432e) to[out=90,in=-90] (65dae54);
-\path[brown] (feccffc) to[out=90,in=-90] (1b6432e);
-\path[blue] (6b30984) to[out=90,in=-90] (827f503);
-\path[blue] (6b30984) to[out=90,in=-90] (feccffc);
-\path[blue] (d2bf877) to[out=90,in=-90] (6b30984);
-\path[black] (7ef61eb) to[out=90,in=-90] (d477a13);
-\path[black] (7ef61eb) to[out=90,in=-90] (d2bf877);
-\path[black] (8024ece) to[out=90,in=-90] (7ef61eb);
-\path[black] (8dde7ec) to[out=90,in=-90] (8024ece);
-\path[black] (53e02cf) to[out=90,in=-90] (8dde7ec);
-\path[blue] (16d4f59) to[out=90,in=-90] (feccffc);
-\path[black] (6e41ab0) to[out=90,in=-90] (53e02cf);
-\path[black] (6e41ab0) to[out=90,in=-90] (16d4f59);
-\path[black] (2256509) to[out=90,in=-90] (6e41ab0);
-\path[black] (8a5d531) to[out=90,in=-90] (2256509);
-\path[black] (7ac7de4) to[out=90,in=-90] (8a5d531);
-\path[blue] (69be133) to[out=90,in=-90] (7ac7de4);
-\path[black] (1af283b) to[out=90,in=-90] (7ac7de4);
-\path[black] (da268ea) to[out=90,in=-90] (69be133);
-\path[black] (da268ea) to[out=90,in=-90] (1af283b);
-\path[black] (3dbbd41) to[out=90,in=-90] (da268ea);
-\path[black] (afd6f5a) to[out=90,in=-90] (3dbbd41);
-\path[black] (9ebee64) to[out=90,in=-90] (afd6f5a);
-\path[black] (e5c3cd5) to[out=90,in=-90] (9ebee64);
-\path[black] (d78896f) to[out=90,in=-90] (e5c3cd5);
-\path[black] (a6f6d74) to[out=90,in=-90] (d78896f);
-\node[branch,right,xshift=10] (develop) at (labela0c0aef.east) {\lstinline{develop}};
-\node[branch,right,xshift=10] (feature/python2) at (label2d3b28d.east) {\lstinline{feature/python2}};
-\node[branch,right,xshift=10] (master) at (label65dae54.east) {\lstinline{master}};
-\node[branch,right,xshift=10] (origin/HEAD) at (label65dae54.east) {\lstinline{origin/HEAD}};
-\node[branch,right,xshift=10] (origin/develop) at (label71f4986.east) {\lstinline{origin/develop}};
-\node[branch,right,xshift=10] (origin/feature/python) at (label6b30984.east) {\lstinline{origin/feature/python}};
-\node[branch,right,xshift=10] (origin/feature/python2) at (label769f9d1.east) {\lstinline{origin/feature/python2}};
-\node[branch,right,xshift=10] (origin/master) at (label65dae54.east) {\lstinline{origin/master}};
-\end{tikzpicture}
colors = ["black", "blue", "brown", "cyan", "darkgray", "gray", "green", "lightgray", "lime", "magenta", "olive", "orange", "pink", "purple", "red", "teal", "violet", "white", "yellow"]
return colors[numb % colors.__len__()]
+def Str2Tex(string):
+ string = string.replace("_","\\_")
+ string = string.replace("&","\\&")
+ return string
+
class Hash:
hashpat7 = compile(r"[a-f0-9]{7}")
hashpat40 = compile(r"[a-f0-9]{40}")
def __eq__(self,other):
return self.hash() == other.hash()
+
+class Author:
+ def __init__(self,string):
+ parts = string.split("<")
+ self.name = parts[0].strip()
+ self.email = parts[1][:-1]
+
+ def __str__(self):
+ return self.name + " <" + self.email + ">"
+
+ def auth2Tex(self):
+ return "\\href{mailto:" + self.email + "}{" + self.name + "}"
+
+
def VerbClean(message):
return message.replace('\n',' ').replace("!",'.')
out("Date & Changes & Author\\\\")
for commit in self._commits.values():
commit.export_commit2table()
+ out("\\arrayrulecolor{lightgray}\\hline")
out("\\arrayrulecolor{lightgray}\\hline")
out("\\end{tabular}")
line = line[self._message_pos:]
info = line.split(':')
if info[0] == 'Author':
- self._author = ':'.join(info[1:]).strip()
+ self._author = Author(':'.join(info[1:]).strip())
elif info[0] == 'Date':
tmp = ':'.join(info[1:]).strip().split(' ')
self._date = tmp[2] + ' ' + tmp[1] + ' ' + tmp[4]
out("\\node[right,xshift=10] (label" + self.hash() + ") at (" + self.hash() + ".east) {\\verb!" + self.hash() + ": " + VerbClean(self._message) + "!};")
def export_commit2table(self):
- out(self._date + '& \\verb!' + VerbClean(self._message) + '! &' + self._author + "\\\\")
+ out(self._date + '&' + Str2Tex(self._message) + '&' + self._author.auth2Tex() + "\\\\")
def export_path2tikz(self):
for child in self._children.values():
r.add_branchlog(check_output(cmd, shell=True, encoding='utf-8'))
+if options.table:
+ export = r.export_to_tabular
+else:
+ export = r.export_to_tikz
+
if options.file:
with open(options.file,"w", encoding="utf-8") as out_stream:
#Export
- if options.table:
- r.export_to_tabular()
- else:
- r.export_to_tikz()
\ No newline at end of file
+ export()
+else:
+ export()
\ No newline at end of file
\usepackage{listings}
\usepackage[german]{babel}
\usepackage[utf8x]{inputenc}
+\usepackage[hidelinks]{hyperref}
%opening
\section{Erster Versuch }
Sieht schon ganz gut aus. Hoffe mit den Hooks funktioniert jetzt auch
- \input{git1}
+ \input{generic/git1}
\section{Hooks}
Mit pre-commit läufts ganz gut. Sonst stimmen die Hashes sowieso nicht.
\section{Zweiter Versuch}
Hier sollen jetzt auch die User angezeigt werden. Also besserer Import
-
-
- \begin{tabular}{c!{\color{lightgray}\vline}cc}
- Date & Changes & Author\\
- \arrayrulecolor{lightgray}\hline
- \end{tabular}
- \input{git2}
+ \input{generic/git2}
\end{document}