Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Lukas Nagel
itt
Commits
a656ad46
Commit
a656ad46
authored
Nov 12, 2021
by
Lukas Nagel
Browse files
init ProjectGraph with git concepts
parent
4ce4a42c
Changes
1
Hide whitespace changes
Inline
Side-by-side
mindmap/ProjectGraph.tex
0 → 100644
View file @
a656ad46
% vim: foldmethod=indent foldlevel=99
\documentclass
[tikz, border=3mm]
{
standalone
}
\usepackage
{
tikz
}
\usetikzlibrary
{
backgrounds
}
\usetikzlibrary
{
positioning
}
\usetikzlibrary
{
shapes
}
\usetikzlibrary
{
arrows
}
\definecolor
{
rootcolor
}{
named
}{
black
}
\begin{document}
\begin{tikzpicture}
[ example/.style=
{
rectangle split
, rectangle split parts=2
, text width=4cm
, align=left
, draw=black
, fill=orange!10
, every one node part/.append style=
{
font=
\small\sffamily
}
, every two node part/.style=
{
font=
\tiny\sffamily
}
}
, concept/.style=
{
circle
, fill=black!40
, draw=none, thin
, minimum size=3cm
, node distance=2cm
}
, neutral/.append style=
{
fill=green!40
}
, vcs/.append style=
{
fill=purple!40
}
, git/.append style=
{
fill=orange!40
}
, wf/.append style=
{
fill=red!40
}
]
\node
[concept, vcs]
(vcs)
{
SCM / VCS
}
;
\node
[concept, vcs, below left=of vcs, xshift= 2cm]
(integrity)
{
Integrität
}
;
\node
[concept, vcs, below left=of vcs, xshift=-2cm]
(nachvollziehbarkeit)
{
Nachvollziehbarkeit
}
;
\node
[concept, vcs, below left=of vcs, xshift=-6cm]
(resetability)
{
Wiederherstellbarkeit
}
;
\node
[concept, vcs, below left=of vcs, xshift= 6cm]
(collaboration)
{
Kollaboration
}
;
\node
[example, above left=of vcs]
(einstieg)
{
\nodepart
{
one
}
Bsp.: Dokument Bearbeiten
\nodepart
{
two
}
Alice bearbeitet Dokument und erstellt Sicherungs
Kopien um Änderungen zu revidieren.
Zu viele Dateien, daher in unterverzeichnis,
um platz zu sparenr noch eben zippen.
Witz: Mag absurd klingen, aber laut StackOverflow
umfragen operieren so 8
\%
der Befragten!
}
;
{
\node
[concept, git, right=10cm of vcs]
(git)
{
Git Projekt
}
;
\node
[example, above left=of git]
(resolution)
{
\nodepart
{
one
}
Auflöung: Dokument Bearbeiten
\nodepart
{
two
}
Git arbeitet fast genau so!
}
;
\node
[concept, neutral, below right=of vcs, yshift=-6cm]
(file)
{
Datei
}
;
\node
[concept, neutral, below left=of file]
(dirnode)
{
Verzeichnis
}
;
\node
[concept, git, below left=of git]
(workingtree)
{
Arbeitsverzeichnis
}
;
\node
[concept, git, below=of git]
(repository)
{
Repository
}
;
\node
[concept, git, below right=of repository, yshift=-2cm]
(reference)
{
Referenz
}
;
{
\node
[concept, git, below left=of repository, yshift=-2cm]
(object)
{
object
}
;
\node
[concept, git, below=of repository]
(hash)
{
Hash
}
;
\node
[concept, git, below right=of object]
(commit)
{
commit
}
;
\node
[concept, git, right=of commit]
(parent)
{
Vorgänger
}
;
\node
[concept, git, right=of parent]
(history)
{
History
}
;
\node
[concept, neutral, below=of history]
(dag)
{
DAG
}
;
\node
[concept, git, below left=of object]
(blob)
{
blob
}
;
\node
[concept, git, below=of object]
(tree)
{
tree
}
;
}
\node
[concept, git, below right=of git]
(index)
{
Index
}
;
}
\node
[concept, wf, right=12cm of git]
(workflows)
{
Workflows
}
;
\node
[example, above left=of workflows]
(aufgriff)
{
\nodepart
{
one
}
Verwenden: Dokument Bearbeiten
\nodepart
{
two
}
Beispiel aufgreifen für Demos
}
;
\node
[concept, right=6cm of workflows]
(github)
{
GitHub
}
;
\node
[example, above left=of github]
(erweiterung)
{
\nodepart
{
one
}
Erweitern: Dokument Bearbeiten
\nodepart
{
two
}
Nun das beispiel um kollaboration mit Bob erweitern
}
;
\draw
[->, line width=1.2pt, nodes={midway}]
(vcs) edge node
{}
(integrity)
(vcs) edge[bend left=30] node
{}
(collaboration)
(vcs) edge[bend right=30] node
{}
(resetability)
(vcs) edge[bend right=30] node
{}
(nachvollziehbarkeit)
(vcs) edge[bend left=60] node
{}
(file)
;
% UML like aggregation, ie. directory aggregates files
\draw
[-open diamond, line width=1.2pt, nodes={midway}]
(repository) edge node
{}
(object)
(repository) edge node
{}
(reference)
(commit) edge[bend left=15] node
{}
(parent)
(commit) edge node
{}
(tree)
(dirnode) edge node
{}
(file)
(dirnode) edge[loop left] node
{}
(dirnode)
;
% UML like inheritance, ie. commit is instance of blob
\draw
[->, line width=1.2pt, nodes={midway}]
(git) edge node
{}
(workingtree)
(git) edge node
{}
(repository)
(git) edge node
{}
(index)
(reference) edge node
{}
(hash)
(hash) edge node
{}
(object)
(workingtree) edge[bend right=30] node
{}
(tree)
(dag) edge node
{}
(history)
(blob) edge node
{}
(file)
(tree) edge[bend left=45] node
{}
(dirnode)
(parent) edge[bend left=15] node
{}
(commit)
(parent) edge node
{}
(dag)
;
\draw
[-open triangle 90,line width=1.2pt, nodes={midway}]
(object) edge[] node
{}
(commit)
(object) edge[] node
{}
(blob)
(object) edge[] node
{}
(tree)
;
\draw
[->, line width=4pt, draw=black!90, nodes={midway}]
(vcs) edge (git)
(git) edge (workflows)
(workflows) edge (github)
;
\draw
[->, dashed, line width=1.2pt, nodes={midway}]
(einstieg) edge (vcs)
(resolution) edge (git)
(aufgriff) edge (workflows)
(erweiterung) edge (github)
;
\begin{pgfonlayer}
{
background
}
\draw
[->, draw=black!30, line width=4pt, nodes={midway}]
(integrity) edge node
{}
(hash)
(integrity) edge node
{}
(parent)
(vcs) edge node
{}
(history)
;
\end{pgfonlayer}
\end{tikzpicture}
\end{document}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment