diff --git a/code-examples/python-cat.py b/code-examples/python-cat.py new file mode 100644 index 0000000..8366bc5 --- /dev/null +++ b/code-examples/python-cat.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +import sys + +def cat(): + print("Meow") + +def main(): + if len(sys.argv) > 1 and sys.argv[1] == "cat": + cat() + else: + print("HELLO WORLD") + +if __name__ == "__main__": + main() diff --git a/code-examples/python-dog.py b/code-examples/python-dog.py new file mode 100644 index 0000000..087fabb --- /dev/null +++ b/code-examples/python-dog.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python + +import sys + +def dog(): + print("Woof") + +def main(): + if len(sys.argv) > 1 and sys.argv[1] == "dog": + dog() + else: + print("HELLO WORLD") + +if __name__ == "__main__": + main() diff --git a/code-examples/python-merged.py b/code-examples/python-merged.py new file mode 100644 index 0000000..aa41293 --- /dev/null +++ b/code-examples/python-merged.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +import sys + +def cat(): + print("Meow") + +def dog(): + print("Woof") + +def main(): + if len(sys.argv) > 1 and sys.argv[1] == "cat": + cat() + elif len(sys.argv) > 1 and sys.argv[1] == "dog": + dog() + else: + print("HELLO WORLD") + +if __name__ == "__main__": + main() diff --git a/main.latex b/main.latex index 3e2f1c8..e944550 100644 --- a/main.latex +++ b/main.latex @@ -655,8 +655,8 @@ git switch test # or git checkout test # Create and switch in one go - git switch -cc test # or - git checkout -be test + git switch -c test # or + git checkout -b test \end{minted} \note{% @@ -726,9 +726,43 @@ \begin{frame} \frametitle{Tidy Up} \begin{center} - \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-shell-simple-merge.pdf} + \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-shell-delete-test-branch.pdf} + \end{center} + + \note{% + Now that we have finished with that branch, we can delete it. + } +\end{frame} + +\begin{frame} + \frametitle{More Complex merge} + \begin{center} + \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-shell-complex-merge.pdf} + \end{center} + \note{% + At times, git won't be able to merge automatically. + + Dealing with merges is something that there are around a million different tools you can use but I think they over complicate what is actually quite a simple process. + } +\end{frame} + +\begin{frame} + \frametitle{More Complex merge} + \begin{center} + \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-shell-cat-complex-merge.pdf} \end{center} \note{% + Here you can see that the bit(s) git couldn't work out are delimited by \mintinline{bash}{<<<<<<<} and \mintinline{bash}{>>>>>>>} and separated by \mintinline{bash}{=======}. + + All you (the programmer) needs to do is fix it. + } +\end{frame} + +\begin{frame} + \frametitle{More Complex merge} + \begin{center} + \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]{auto-shell-fix-complex-merge.pdf} + \end{center} \note{% } diff --git a/shell/cat-complex-merge b/shell/cat-complex-merge new file mode 100755 index 0000000..0b5c6da --- /dev/null +++ b/shell/cat-complex-merge @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd /tmp/demo +echo '$ cat greeting.py' +cat greeting.py + diff --git a/shell/complex-merge b/shell/complex-merge new file mode 100755 index 0000000..a909aa3 --- /dev/null +++ b/shell/complex-merge @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +DIR="$(dirname "$(readlink -f "$0")")" +cd /tmp/demo +git switch master > /dev/null +git branch dog > /dev/null +cp "${DIR}/../code-examples/python-cat.py" greeting.py > /dev/null +git add greeting.py > /dev/null +git commit -m "Makes a cat say Meow" > /dev/null +git switch dog > /dev/null +cp "${DIR}/../code-examples/python-dog.py" greeting.py > /dev/null +git add greeting.py > /dev/null +git commit -m "Makes a dog say Woof" > /dev/null +git switch master > /dev/null +echo " # Make changes to 2 branches in the same place #" +echo '$ git switch master' +echo '$ git log --oneline --all --graph' +git -c color.ui=always log --oneline --all --graph --decorate=short +echo '$ git merge dog' +git merge dog --no-edit diff --git a/shell/fix-complex-merge b/shell/fix-complex-merge new file mode 100755 index 0000000..df1a79a --- /dev/null +++ b/shell/fix-complex-merge @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +DIR="$(dirname "$(readlink -f "$0")")" +cd /tmp/demo +cp "${DIR}/../code-examples/python-merged.py" greeting.py > /dev/null +echo '$ vim greeting.py' +echo ' # Fix the conflict(s) #' +echo '$ git add greeting.py' +git add greeting.py +echo '$ git commit' +git commit -F .git/COMMIT_EDITMSG +echo '$ git log --oneline --all --graph' +git -c color.ui=always log --oneline --all --graph --decorate=short +