Write slides about merge with conflict

master
Jonathan Hodgson 4 years ago
parent c6c938207f
commit 1df85219c9
  1. 15
      code-examples/python-cat.py
  2. 15
      code-examples/python-dog.py
  3. 20
      code-examples/python-merged.py
  4. 40
      main.latex
  5. 6
      shell/cat-complex-merge
  6. 20
      shell/complex-merge
  7. 14
      shell/fix-complex-merge

@ -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()

@ -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()

@ -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()

@ -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{%
}

@ -0,0 +1,6 @@
#!/usr/bin/env bash
cd /tmp/demo
echo '$ cat greeting.py'
cat greeting.py

@ -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

@ -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
Loading…
Cancel
Save