Skip to content

Commit 1e58c2b

Browse files
committed
Finish centralized workflow
1 parent 767aef8 commit 1e58c2b

File tree

7 files changed

+483
-7
lines changed

7 files changed

+483
-7
lines changed

chapters/workflows/centralized.tex

Lines changed: 343 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,343 @@
1+
%! suppress = MissingImport
2+
3+
4+
\section{Centralized Workflow}\label{sec:centralized-workflow}
5+
\begin{frame}[c]
6+
\centering
7+
\Large
8+
\textbf{Centralized Workflow}
9+
\end{frame}
10+
11+
\subsection{Normalfall}\label{subsec:normalfall}
12+
\begin{frame}[c, fragile]
13+
\slidehead
14+
\begin{center}
15+
16+
\Large
17+
18+
\vspace{-1.5em}
19+
20+
\textbf{Remote}
21+
22+
\vspace{.5em}
23+
\only<1>{\vspace{.5em}}
24+
25+
\normalsize
26+
27+
\begin{tikzpicture}
28+
\node[tiny-commit] at (0, 0)(a){};
29+
\node[tiny-commit] at (2, 0) (b){};
30+
\node[tiny-commit] at (4, 0) (c){};
31+
\node<4>[tiny-commit, fill=TUDa-8a] at (6, 0) (d){};
32+
\node<-3>[branch] at (8, 0) (master){origin/master};
33+
\node<4>[branch] at (10, 0) (master){origin/master};
34+
\draw[parent] (b) to (a);
35+
\draw[parent] (c) to (b);
36+
\draw<4>[parent] (d) to (c);
37+
\draw<-3>[ref-arc] (master) to (c);
38+
\draw<4>[ref-arc] (master) to (d);
39+
\end{tikzpicture}
40+
\begin{onlyenv}<2->
41+
\rule{\textwidth}{.3mm}
42+
\Large
43+
44+
\textbf{Local}
45+
46+
\vspace{.5em}
47+
48+
\normalsize
49+
\begin{tikzpicture}
50+
\node[tiny-commit] at (0, 0)(a){};
51+
\node[tiny-commit] at (2, 0) (b){};
52+
\node[tiny-commit] at (4, 0) (c){};
53+
\node<3->[tiny-commit, fill=TUDa-8a] at (6, 0) (d){};
54+
\node<2>[branch] at (8, 0) (master){master};
55+
\node<3->[branch] at (10, 0) (master){master};
56+
\draw[parent] (b) to (a);
57+
\draw[parent] (c) to (b);
58+
\draw<3->[parent] (d) to (c);
59+
\draw<2>[ref-arc] (master) to (c);
60+
\draw<3->[ref-arc] (master) to (d);
61+
\end{tikzpicture}
62+
63+
\vspace{1em}
64+
65+
\begin{onlyenv}<2>
66+
\bashcommandbob{git pull}
67+
\end{onlyenv}
68+
\begin{onlyenv}<3>
69+
\bashcommandbob{git commit}
70+
\end{onlyenv}
71+
\begin{onlyenv}<4>
72+
\bashcommandbob{git push}
73+
\end{onlyenv}
74+
\vspace{-1em}
75+
\end{onlyenv}
76+
\end{center}
77+
\end{frame}
78+
79+
\subsection{Normallfall Review}\label{subsec:normallfall-review}
80+
\begin{frame}[c]
81+
\slidehead
82+
\centering
83+
\Large
84+
\textbf{Review}
85+
\end{frame}
86+
87+
\begin{frame}[c]
88+
\slidehead
89+
\large
90+
\textbf{Bewertungskriterien}
91+
\normalsize
92+
\begin{enumerate}
93+
\item<2-> Wie skaliert der Workflow? \only<3->{\hfill\textbf{unklar}}
94+
\item<4-> Kann man Fehler einfach rückgängig machen? \only<5->{\hfill\textbf{geht}}
95+
\item<6-> Erzeugt dieser Workflow eine neue unnötige, kognitive Überlastung für das Team? \only<7->{\hfill\textbf{nein}}
96+
\end{enumerate}
97+
\end{frame}
98+
99+
\begin{frame}[c]
100+
\begin{columns}[c]
101+
\begin{column}{.5\textwidth}
102+
\centering
103+
\includesvg[scale=5]{../../pictures/alice}
104+
\end{column}
105+
\begin{column}{.5\textwidth}
106+
\Large
107+
\textcolor{TUDa-10a}{\textbf{Meet Alice}}
108+
\only<2->{
109+
\begin{itemize}
110+
\item<2-> Alice ist eine Softwareentwicklerin
111+
\item<3-> Alice arbeitet zusammen mit Bob
112+
\end{itemize}
113+
}
114+
\end{column}
115+
\end{columns}
116+
\end{frame}
117+
118+
\subsection{Teamarbeit}\label{subsec:teamarbeit}
119+
\begin{frame}[c, fragile]
120+
\slidehead
121+
\begin{center}
122+
123+
\Large
124+
125+
\vspace{-1.5em}
126+
127+
\textbf{Remote}
128+
129+
\vspace{.5em}
130+
\only<1>{\vspace{.5em}}
131+
132+
\normalsize
133+
134+
\begin{tikzpicture}
135+
\node[tiny-commit] at (0, 0)(a){};
136+
\node[tiny-commit] at (2, 0) (b){};
137+
\node[tiny-commit] at (4, 0) (c){};
138+
\node<4->[tiny-commit, fill=TUDa-10a] at (6, 0) (d){};
139+
\node<-3>[branch] at (8, 0) (master){origin/master};
140+
\node<4->[branch] at (10, 0) (master){origin/master};
141+
\draw[parent] (b) to (a);
142+
\draw[parent] (c) to (b);
143+
\draw<4->[parent] (d) to (c);
144+
\draw<-3>[ref-arc] (master) to (c);
145+
\draw<4->[ref-arc] (master) to (d);
146+
\end{tikzpicture}
147+
\rule{\textwidth}{.3mm}
148+
\Large
149+
150+
\textbf{Local}
151+
152+
\vspace{.5em}
153+
154+
\normalsize
155+
\begin{tikzpicture}
156+
\node[tiny-commit] at (0, 0)(a){};
157+
\node[tiny-commit] at (2, 0) (b){};
158+
\node[tiny-commit] at (4, 0) (c){};
159+
\node<2,5>[tiny-commit, fill=TUDa-8a] at (6, 0) (d){};
160+
\node<3-4>[tiny-commit, fill=TUDa-10a] at (6, 0) (d){};
161+
\node<1>[branch] at (8, 0) (master){master};
162+
\node<2->[branch] at (10, 0) (master){master};
163+
\draw[parent] (b) to (a);
164+
\draw[parent] (c) to (b);
165+
\draw<2->[parent] (d) to (c);
166+
\draw<1>[ref-arc] (master) to (c);
167+
\draw<2->[ref-arc] (master) to (d);
168+
\end{tikzpicture}
169+
170+
\vspace{1em}
171+
172+
\begin{onlyenv}<1>
173+
\bashcommandbob{git pull}
174+
\end{onlyenv}
175+
\begin{onlyenv}<2>
176+
\bashcommandbob{git commit}
177+
\end{onlyenv}
178+
\begin{onlyenv}<3>
179+
\bashcommandalice{git commit}
180+
\end{onlyenv}
181+
\begin{onlyenv}<4>
182+
\bashcommandalice{git push}
183+
\end{onlyenv}
184+
\begin{onlyenv}<5>
185+
\bashcommandbob{git push \textcolor{TUDa-9a}{ERROR!}}
186+
\end{onlyenv}
187+
\vspace{-1em}
188+
\end{center}
189+
\end{frame}
190+
191+
\begin{frame}[c]
192+
\slidehead
193+
\centering
194+
\large
195+
\textbf{Was ist passiert?}
196+
\small
197+
\begin{onlyenv}<2>
198+
\inputCode[]{
199+
title=\codeBlockTitle{Rejected Push},
200+
}{\codeDir/rejected-push.txt}
201+
\end{onlyenv}
202+
\end{frame}
203+
204+
\begin{frame}[c, fragile]
205+
\slidehead
206+
\begin{center}
207+
208+
\Large
209+
210+
\vspace{-1.5em}
211+
212+
\textbf{Remote}
213+
214+
\vspace{.5em}
215+
\only<1>{\vspace{.5em}}
216+
217+
\normalsize
218+
219+
\begin{tikzpicture}
220+
\node[tiny-commit] at (0, 0)(a){};
221+
\node[tiny-commit] at (2, 0) (b){};
222+
\node[tiny-commit] at (4, 0) (c){};
223+
\node[tiny-commit, fill=TUDa-10a] at (6, 0) (d){};
224+
\node<3->[tiny-commit, fill=TUDa-8a] at (8, 0) (e){};
225+
\node<-2>[branch] at (10, 0) (master){origin/master};
226+
\node<3->[branch] at (12, 0) (master){origin/master};
227+
\draw[parent] (b) to (a);
228+
\draw[parent] (c) to (b);
229+
\draw[parent] (d) to (c);
230+
\draw<3->[parent] (e) to (d);
231+
\draw<-2>[ref-arc] (master) to (d);
232+
\draw<3->[ref-arc] (master) to (e);
233+
\end{tikzpicture}
234+
\rule{\textwidth}{.3mm}
235+
\Large
236+
237+
\textbf{Local}
238+
239+
\vspace{.5em}
240+
241+
\normalsize
242+
\begin{tikzpicture}
243+
\node[tiny-commit] at (0, 0)(a){};
244+
\node[tiny-commit] at (2, 0) (b){};
245+
\node[tiny-commit] at (4, 0) (c){};
246+
\node<1>[tiny-commit, fill=TUDa-8a] at (6, 0) (d){};
247+
\node<2->[tiny-commit, fill=TUDa-10a] at (6, 0) (d){};
248+
\node<2->[tiny-commit, fill=TUDa-8a] at (8, 0) (e){};
249+
\node<1>[branch] at (10, 0) (master){master};
250+
\node<2->[branch] at (12, 0) (master){master};
251+
\draw[parent] (b) to (a);
252+
\draw[parent] (c) to (b);
253+
\draw[parent] (d) to (c);
254+
\draw<2->[parent] (e) to (d);
255+
\draw<1>[ref-arc] (master) to (d);
256+
\draw<2->[ref-arc] (master) to (e);
257+
\end{tikzpicture}
258+
259+
\vspace{1em}
260+
261+
\begin{onlyenv}<2>
262+
\bashcommandbob{git pull \textminus\textminus rebase}
263+
\end{onlyenv}
264+
\begin{onlyenv}<3>
265+
\bashcommandbob{git push}
266+
\end{onlyenv}
267+
\vspace{-1em}
268+
\end{center}
269+
\end{frame}
270+
271+
\subsection{Rebase vs Merge}\label{subsec:rebase-vs-merge}
272+
\begin{frame}[c]
273+
\centering
274+
\Large
275+
\textbf{Rebase vs Merge}
276+
\end{frame}
277+
278+
\begin{frame}[c, fragile]
279+
\slidehead
280+
\begin{center}
281+
282+
\Large
283+
284+
\vspace{-1.5em}
285+
286+
\textbf{Rebase}
287+
288+
\vspace{.5em}
289+
\only<1>{\vspace{.5em}}
290+
291+
\normalsize
292+
293+
\begin{tikzpicture}
294+
\node[tiny-commit] at (0, 0)(a){};
295+
\node[tiny-commit] at (2, 0) (b){};
296+
\node[tiny-commit] at (4, 0) (c){};
297+
\node[tiny-commit, fill=TUDa-10a] at (6, 0) (d){};
298+
\node[tiny-commit, fill=TUDa-8a] at (8, 0) (e){};
299+
\node[branch] at (12, 0) (master){master};
300+
\draw[parent] (b) to (a);
301+
\draw[parent] (c) to (b);
302+
\draw[parent] (d) to (c);
303+
\draw[parent] (e) to (d);
304+
\draw[ref-arc] (master) to (e);
305+
\end{tikzpicture}
306+
\begin{onlyenv}<2->
307+
\rule{\textwidth}{.3mm}
308+
\Large
309+
310+
\textbf{Merge}
311+
312+
\vspace{.5em}
313+
314+
\normalsize
315+
\begin{tikzpicture}
316+
\node[tiny-commit] at (0, 0)(a){};
317+
\node[tiny-commit] at (2, 0) (b){};
318+
\node[tiny-commit] at (4, 0) (c){};
319+
\node<2>[tiny-commit, fill=TUDa-8a] at (6, 0) (d){};
320+
\node<3->[tiny-commit, fill=TUDa-8a] at (6, -.75) (d){};
321+
\node<3->[tiny-commit, fill=TUDa-10a] at (6, .75) (e){};
322+
\node<4->[tiny-merge-commit] at (8, 0) (f){};
323+
\node<-3>[branch] at (10, 0) (master){master};
324+
\node<4->[branch] at (12, 0) (master){master};
325+
\draw[parent] (b) to (a);
326+
\draw[parent] (c) to (b);
327+
\draw[parent] (d) to (c);
328+
\draw<3->[parent] (e) to (c);
329+
\draw<4->[parent] (f) to (d);
330+
\draw<4->[parent] (f) to (e);
331+
\draw<-2>[ref-arc] (master) to (d);
332+
\draw<4->[ref-arc] (master) to (f);
333+
\end{tikzpicture}
334+
\end{onlyenv}
335+
\end{center}
336+
\end{frame}
337+
338+
\begin{frame}[c]
339+
\slidehead
340+
\centering
341+
\Large
342+
\bashcommand{git config --global pull.ff only}
343+
\end{frame}

chapters/workflows/intro.tex

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
%! suppress = MissingImport
2-
3-
42
\section{Git Workflows}\label{sec:git-workflows}
53
\begin{frame}[c]
64
\centering
@@ -44,7 +42,7 @@ \subsection{Was ist ein Git Workflow?}\label{subsec:was-ist-ein-git-workflow?}
4442

4543
\begin{frame}[c]
4644
\centering
47-
\large
45+
\Large
4846
\textbf{Wie sieht ein erfolgreicher Git Workflow aus?}
4947
\end{frame}
5048

@@ -53,6 +51,7 @@ \subsection{Wie sieht ein erfolgreicher Git Workflow aus?}\label{subsec:wie-sieh
5351
\slidehead
5452
\large
5553
\textbf{Bewertungskriterien}
54+
\normalsize
5655
\begin{enumerate}
5756
\item<2-> Wie skaliert der Workflow?
5857
\item<3-> Kann man Fehler einfach rückgängig machen?
@@ -68,7 +67,7 @@ \subsection{Wie sieht ein erfolgreicher Git Workflow aus?}\label{subsec:wie-sieh
6867
\end{column}
6968
\begin{column}{.5\textwidth}
7069
\Large
71-
\textbf{Meet Bob}
70+
\textcolor{TUDa-8a}{\textbf{Meet Bob}}
7271
\only<2->{
7372
\begin{itemize}
7473
\item<2-> Bob ist ein Softwareentwickler

code/rejected-push.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
To https://github.com/REDACTED.git
2+
! [rejected] master -> master (non-fast-forward)
3+
error: failed to push some refs to 'https://github.com/REDACTED.git'
4+
hint: Updates were rejected because the tip of your current branch is behind
5+
hint: its remote counterpart. Integrate the remote changes (e.g.
6+
hint: 'git pull ...') before pushing again.
7+
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

0 commit comments

Comments
 (0)