diff --git a/.editorconfig b/.editorconfig index 649eddd..7bda54f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,19 @@ end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -max_line_length = 130 -[*.yml] +[*.{md,mf}] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 +trim_trailing_whitespace = false + +[flake.{lock,nix}] indent_size = 2 + +[Makefile] +indent_style = tab + +[{COPYING,LICENSE,NOTICE,*.{md,mf,xmp,xml}}] +indent_size = unset diff --git a/.gitignore b/.gitignore index 5c06f04..5478557 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ atlassian-ide-plugin.xml ### VS-Code ### -.vscode/ +.vscode/settings.json .VSCodeCounter/ ### Eclipse ### diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..4960cbc --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,20 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: end-of-file-fixer + - id: check-yaml + # - id: check-added-large-files +- repo: https://github.com/cmhughes/latexindent.pl.git + rev: V3.23.3 + hooks: + - id: latexindent + args: ["--overwriteIfDifferent", "--silent", "-l=latexindent.yaml"] +- repo: https://github.com/editorconfig-checker/editorconfig-checker.python + rev: '2.7.3' # pick a git hash / tag to point to + hooks: + - id: editorconfig-checker + exclude_types: [tex] + alias: ec diff --git a/.teamcity/settings.kts b/.teamcity/settings.kts index cfe16f5..e39fe3c 100644 --- a/.teamcity/settings.kts +++ b/.teamcity/settings.kts @@ -70,25 +70,29 @@ fun createBuild(buildGroup: String, buildName: String): BuildType { steps { exec { name = "Clean up old pdf" - workingDir = buildGroup - path = "rm" - arguments = "-f $buildGroup-$buildName-RC*.pdf" + path = "make" + arguments = "cleanBuild" } exec { name = "Build $buildGroup/$buildName with AlgoTeX" - workingDir = buildGroup - path = "latexmk" - arguments = "--shell-escape -synctex=1 -interaction=nonstopmode -file-line-error -lualatex $buildName.tex" + path = "make" + arguments = "-j FILES=$buildGroup/$buildName.tex" } exec { name = "Create final pdf" - workingDir = buildGroup + workingDir = "build" path = "cp" arguments = "$buildName.pdf $buildGroup-$buildName-RC%env.BUILD_NUMBER%.pdf" } + exec { + name = "Create final pdf (darkmode)" + workingDir = "build" + path = "cp" + arguments = "$buildName-darkmode.pdf $buildGroup-$buildName-RC%env.BUILD_NUMBER%-darkmode.pdf" + } } - artifactRules = "+:$buildGroup/$buildGroup-$buildName-RC%env.BUILD_NUMBER%.pdf" + artifactRules = "+:./build/$buildGroup-$buildName-RC%env.BUILD_NUMBER%*.pdf" } } } diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..89e32a7 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "James-Yu.latex-workshop" + ] +} diff --git a/.vscode/settings.default.json b/.vscode/settings.default.json new file mode 100644 index 0000000..9e7c40b --- /dev/null +++ b/.vscode/settings.default.json @@ -0,0 +1,24 @@ +{ + "latex-workshop.latexindent.args": [ + "-c", + "%DIR%/", + "%TMPFILE%", + "-l=%WORKSPACE_FOLDER%/latexindent.yaml", + "-y=defaultIndent: '%INDENT%'" + ], + "latex-workshop.latex.verbatimEnvs": [ + "verbatim", + "lstlisting", + "minted", + "codeBlock" + ], + "files.associations": { + "*.sty": "latex-expl3", + "*.cls": "latex-expl3", + "*.def": "latex", + "*.aux": "latex", + "*.toc": "latex", + "*.pygstyle": "latex", + "*.pygtex": "latex" + } +} diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..362e15c --- /dev/null +++ b/Makefile @@ -0,0 +1,67 @@ + +OUT_DIR := build/ +TOPTARGETS := clean all +FILES := $(wildcard git-days/*.tex sheet/*.tex) + +define compile_latex_with_jobname_and_env + cd $(4) && $(3) latexmk --shell-escape -synctex=1 -interaction=nonstopmode -file-line-error -lualatex -jobname=$(2) "$(1)" +endef + +define build_latex_with_jobname_and_env + $(eval DIR := $(dir $(1))) + $(eval FILE := $(notdir $(1))) + @echo -e "\e[1;32mCompiling \"$(FILE)\" in \"$(DIR)\" with jobname \"$(2)\"$<\e[0m" + @$(call compile_latex_with_jobname_and_env,$(FILE),$(2),$(3),$(DIR)) + @echo -e "\e[1;32mSuccessfully compiled \"$(FILE)\" in \"$(DIR)\" with jobname \"$(2)\"$<\e[0m" + @mkdir -p $(OUT_DIR) + @cp $(DIR)/$(2).pdf $(OUT_DIR)/ +endef + +all: + $(MAKE) compile + +$(FILES:.tex=.tex.regular): + $(eval FILE := $(patsubst %.tex.regular,%.tex,$@)) + $(call build_latex_with_jobname_and_env,$(FILE),$(notdir $(patsubst %.tex,%,$(FILE))),) + +$(FILES:.tex=.tex.darkmode): + $(eval FILE := $(patsubst %.tex.darkmode,%.tex,$@)) + $(call build_latex_with_jobname_and_env,$(FILE),$(notdir $(patsubst %.tex,%-darkmode,$(FILE))),DARK_MODE=1) + +compile: $(FILES:.tex=.tex.regular) $(FILES:.tex=.tex.darkmode) + @echo -e "\e[1;42mAll Done. PDFs can be found in $(OUT_DIR)\e[0m" + +clean: + @echo -e "\e[1;34mCleaning up leftover build files...$<\e[0m" + @latexmk -C -f git-days + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/options.cfg' -exec rm -rf {} \; + @find . -ignore_readdir_race -maxdepth 1 -not \( -path "*/.git/*" -prune \) -wholename '**/*.pdf' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.aux' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.fdb_latexmk' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.fls' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.len' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.listing' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.log' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.out' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.synctex.gz' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.toc' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.nav' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.snm' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.vrb' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.bbl' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.blg' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.idx' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.ilg' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.ind' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.pyg' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/*.bak[0-9]*' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/_minted-*' -exec rm -rf {} \; + @find . -ignore_readdir_race -not \( -path "*/.git/*" -prune \) -wholename '**/svg-inkscape' -exec rm -rf {} \; + @echo -e "\e[1;44mDone cleaning up leftover build files.$<\e[0m" + +cleanBuild: + @echo -e "\e[1;34mCleaning up build directory...$<\e[0m" + @rm -rf $(OUT_DIR) + @echo -e "\e[1;44mDone cleaning up build directory.$<\e[0m" + +cleanAll: clean cleanBuild diff --git a/chapters/commits.tex b/chapters/commits.tex index a06f6ee..7b1cd5c 100644 --- a/chapters/commits.tex +++ b/chapters/commits.tex @@ -22,16 +22,16 @@ \section{Commits}\label{sec:commits} \slidehead \begin{itemize} \item Ein Commit ist ein logischer Snapshot von einer Repository - \begin{itemize} - \item Zeitpunkt - \item Dateisystemzustand - \end{itemize} + \begin{itemize} + \item Zeitpunkt + \item Dateisystemzustand + \end{itemize} \item Datei hinzugefügt, geändert, verschoben oder gelöscht \item mit Nachricht versehen \item \enquote{kryptische} Bezeichnung (Hash), z.B. \texttt{bc7f1a9e22bc7f19e22bc}\dots - \begin{itemize} - \item erste fünf Zeichen zur Identifizierung meist ausreichend - \end{itemize} + \begin{itemize} + \item erste fünf Zeichen zur Identifizierung meist ausreichend + \end{itemize} \end{itemize} \end{frame} @@ -122,10 +122,10 @@ \subsection{Exkurs: Hashing}\label{subsec:exkurs:-hashing} \end{tikzpicture} } \begin{align*} - \mathbb{B} &:= \{0, 1\}^* \quad \text{(binäre Zahl, beliebige Länge)} \\ - \mathbb{B}_n &:= \{0, 1\}^n \quad \text{(binäre Zahl, Länge $n$)} \\ - h &: \mathbb{B} \rightarrow \mathbb{B}_n \\ - h(x) &= y \quad \forall x \in \mathbb{B}, \, \exists y \in \mathbb{B}_n + \mathbb{B} & := \{0, 1\}^* \quad \text{(binäre Zahl, beliebige Länge)} \\ + \mathbb{B}_n & := \{0, 1\}^n \quad \text{(binäre Zahl, Länge $n$)} \\ + h & : \mathbb{B} \rightarrow \mathbb{B}_n \\ + h(x) & = y \quad \forall x \in \mathbb{B}, \, \exists y \in \mathbb{B}_n \end{align*} \end{frame} diff --git a/chapters/filesystem.tex b/chapters/filesystem.tex index 2fa95b9..312ae4d 100644 --- a/chapters/filesystem.tex +++ b/chapters/filesystem.tex @@ -55,14 +55,14 @@ \subsection{Was ist ein Dateisystem?}\label{subsec:was-ist-ein-dateisystem} [<+->] \item Programme, um Dateien zu verwalten \item Diese Dateien befinden sich auf einem Dateisystem - \begin{itemize} - \item NTFS - \item exFAT - \item ext4 - \item APFS - \item ZFS - \item \dots und viele mehr - \end{itemize} + \begin{itemize} + \item NTFS + \item exFAT + \item ext4 + \item APFS + \item ZFS + \item \dots und viele mehr + \end{itemize} \end{itemize} \end{frame} @@ -84,21 +84,21 @@ \subsection{Zusammenarbeit}\label{subsec:zusammenarbeit} \slidehead \begin{itemize}[<+->] \item Dateisysteme sind oberflächlich sehr ähnlich - \begin{itemize} - \item Ordner - \item Dateien - \end{itemize} + \begin{itemize} + \item Ordner + \item Dateien + \end{itemize} \item Es gibt auch sehr viele Unterschiede - \begin{itemize} - \item OS Kompatibilität - \item Line-Endings - \item Metadaten - \end{itemize} + \begin{itemize} + \item OS Kompatibilität + \item Line-Endings + \item Metadaten + \end{itemize} \item Für die Zusammenarbeit besonders wichtig: - \begin{itemize} - \item Wie können wir ein Dateisystem verteilen? - \item Wie können wir den Zustand an einem bestimmten Zeitpunkt wiederherstellen? - \end{itemize} + \begin{itemize} + \item Wie können wir ein Dateisystem verteilen? + \item Wie können wir den Zustand an einem bestimmten Zeitpunkt wiederherstellen? + \end{itemize} \end{itemize} \end{frame} @@ -144,21 +144,21 @@ \subsection{Replikation}\label{subsec:replikation} \begin{itemize} [<+->] \item Ein Fileserver agiert als zentrale Schnittstelle und \enquote{Single source of truth} - \begin{itemize} - \item Writes werden direkt im Globalen Zustand geschrieben und sind für alle direkt sichtbar - \item Reads liefern immer den aktuellsten Zustand - \end{itemize} + \begin{itemize} + \item Writes werden direkt im Globalen Zustand geschrieben und sind für alle direkt sichtbar + \item Reads liefern immer den aktuellsten Zustand + \end{itemize} \item \enquote{Single point of failure} (SPOF) \item Keine klare \enquote{history} - \begin{itemize} - \item Veränderungen werden nicht gruppiert - \item Unmöglich\footnote{Ja, es gibt Backups - dazu kommen wir noch} auf einen alten Zustand zurückzugehen - \end{itemize} + \begin{itemize} + \item Veränderungen werden nicht gruppiert + \item Unmöglich\footnote{Ja, es gibt Backups - dazu kommen wir noch} auf einen alten Zustand zurückzugehen + \end{itemize} \item Unabhängige Arbeit unmöglich! - \begin{itemize} - \item Wenn gerade am Code gearbeitet wird, kompiliert er meistens nicht - \item Dateien werden gegenseitig überschrieben - \end{itemize} + \begin{itemize} + \item Wenn gerade am Code gearbeitet wird, kompiliert er meistens nicht + \item Dateien werden gegenseitig überschrieben + \end{itemize} \end{itemize} \end{frame} @@ -237,12 +237,12 @@ \subsection{Snapshots}\label{subsec:snapshots} \begin{itemize} [<+->] \item Projektzustand nur zu bestimmten Zeitpunkten gespeichert. - \begin{itemize} - \item Wiederherstellen von einzelnen Veränderungen sehr schwierig - \item Vergleich von Zuständen sehr schwierig - \item Kein \enquote{Blame} - \item Backups sind keine Versionsverwaltung! - \end{itemize} + \begin{itemize} + \item Wiederherstellen von einzelnen Veränderungen sehr schwierig + \item Vergleich von Zuständen sehr schwierig + \item Kein \enquote{Blame} + \item Backups sind keine Versionsverwaltung! + \end{itemize} \item USB-Stick Verfahren ist noch ungeeigneter \end{itemize} \end{frame} diff --git a/chapters/git.tex b/chapters/git.tex index 32a7957..7c1e838 100644 --- a/chapters/git.tex +++ b/chapters/git.tex @@ -20,17 +20,17 @@ \subsection{Kurzer Überblick über die Historie}\label{subsec:kurzer-uberblick- \item 1991--2002 wurden Änderungen am Linux Kernel in Form von Patches herumgereicht \item Ab 2002 mit DVCS Bitkeeper (\enquote{Distributed Version Control System}) \item 2005 ging die Beziehung \enquote{in die Brüche} - \begin{itemize} - \item Die zuvor ausgesprochene Erlaubnis, BitKeeper kostenlos zu verwenden, wurde widerrufen - \end{itemize} + \begin{itemize} + \item Die zuvor ausgesprochene Erlaubnis, BitKeeper kostenlos zu verwenden, wurde widerrufen + \end{itemize} \item April 2005 - Linus Torvalds fängt an, Git zu entwickeln.\ Die Ziele waren unter Anderem: - \begin{itemize} - \item Geschwindigkeit - \item Einfaches Design - \item Gute Unterstützung von nicht-linearer Entwicklung (tausende parallele Entwicklungszweige) - \item Vollständig dezentrale Struktur - \item Fähigkeit, große Projekte, wie den Linux Kernel, effektiv zu verwalten (Geschwindigkeit und Datenumfang) - \end{itemize} + \begin{itemize} + \item Geschwindigkeit + \item Einfaches Design + \item Gute Unterstützung von nicht-linearer Entwicklung (tausende parallele Entwicklungszweige) + \item Vollständig dezentrale Struktur + \item Fähigkeit, große Projekte, wie den Linux Kernel, effektiv zu verwalten (Geschwindigkeit und Datenumfang) + \end{itemize} \end{itemize} \renewcommand{\thefootnote}{\relax}\footnotetext{https://git-scm.com/book/de/v2/Erste-Schritte-Kurzer-\%C3\%9Cberblick-\%C3\%BCber-die-Historie-von-Git} \end{frame} diff --git a/chapters/gitignore.tex b/chapters/gitignore.tex index b16014e..ac25381 100644 --- a/chapters/gitignore.tex +++ b/chapters/gitignore.tex @@ -15,12 +15,12 @@ \section{.gitignore}\label{sec:.gitignore} \slidehead \begin{itemize}[<+->] \item Manche Ordner (und Dateien) sollten nie committed werden - \begin{itemize} - \item .idea - \item .vscode - \item build - \item node\_modules - \end{itemize} + \begin{itemize} + \item .idea + \item .vscode + \item build + \item node\_modules + \end{itemize} \item Diese Regeln können in eine \enquote{.gitignore} Datei festgelegt werden \end{itemize} \end{frame} diff --git a/chapters/workflows/centralized.tex b/chapters/workflows/centralized.tex index 6a8e74d..731e6d1 100644 --- a/chapters/workflows/centralized.tex +++ b/chapters/workflows/centralized.tex @@ -121,8 +121,8 @@ \subsection{Normallfall Review}\label{subsec:normallfall-review} \textcolor{TUDa-10a}{\textbf{Meet Alice}} \only<2->{ \begin{itemize} - \item<2-> Alice ist eine Softwareentwicklerin - \item<3-> Alice arbeitet zusammen mit Bob + \item<2-> Alice ist eine Softwareentwicklerin + \item<3-> Alice arbeitet zusammen mit Bob \end{itemize} } \end{column} diff --git a/chapters/workflows/intro.tex b/chapters/workflows/intro.tex index b5f06a0..a466ea3 100644 --- a/chapters/workflows/intro.tex +++ b/chapters/workflows/intro.tex @@ -71,10 +71,10 @@ \subsection{Wie sieht ein erfolgreicher Git Workflow aus?}\label{subsec:wie-sieh \textcolor{TUDa-8a}{\textbf{Meet Bob}} \only<2->{ \begin{itemize} - \item<2-> Bob ist ein Softwareentwickler - \item<3-> Bob probiert verschiedene Git Workflows aus - \item<4-> Bob möchte einen Workflow finden, der zu ihm passt - \item<5-> Bob arbeitet alleine + \item<2-> Bob ist ein Softwareentwickler + \item<3-> Bob probiert verschiedene Git Workflows aus + \item<4-> Bob möchte einen Workflow finden, der zu ihm passt + \item<5-> Bob arbeitet alleine \end{itemize} } \end{column} diff --git a/common/preamble.tex b/common/preamble.tex index 5adfba6..4ef940e 100644 --- a/common/preamble.tex +++ b/common/preamble.tex @@ -1,9 +1,9 @@ %! suppress = DocumentclassNotInRoot \documentclass[ -% ngerman, + % ngerman, english, accentcolor=TUDa-1c, -% dark_mode, + % dark_mode, fontsize= 12pt, a4paper, aspectratio=169, @@ -11,6 +11,6 @@ fancy_row_colors, leqno, boxarc=3pt, -% shell_escape = false, % Kompatibilität mit sharelatex + % shell_escape = false, % Kompatibilität mit sharelatex ]{algoslides} \author{Alexander Städing} diff --git a/git-days/day-1.tex b/git-days/day-1.tex index 6112ddf..cc4b889 100644 --- a/git-days/day-1.tex +++ b/git-days/day-1.tex @@ -1,4 +1,5 @@ %! suppress = MissingImport +%!TeX root=day-1.tex \RequirePackage{import} \subimport{../common}{preamble} \subimport{../common}{packages} diff --git a/latexindent.yaml b/latexindent.yaml index 9f0f145..6d75496 100644 --- a/latexindent.yaml +++ b/latexindent.yaml @@ -32,10 +32,10 @@ # according to the choices made in fileExtensionPreference # Other file extensions can be added. fileExtensionPreference: - .tex: 1 - .sty: 2 - .cls: 3 - .bib: 4 + .tex: 1 + .sty: 2 + .cls: 3 + .bib: 4 # default file extension of backup file (if -w switch is active) # for example, if your .tex file is called @@ -76,58 +76,58 @@ cycleThroughBackUps: 0 # preferences for information displayed in the log file logFilePreferences: - showEveryYamlRead: 1 - showAmalgamatedSettings: 0 - showDecorationStartCodeBlockTrace: 0 - showDecorationFinishCodeBlockTrace: 0 - endLogFileWith: '--------------' - showGitHubInfoFooter: 1 - Dumper: - Terse: 1 - Indent: 1 - Useqq: 1 - Deparse: 1 - Quotekeys: 0 - Sortkeys: 1 - Pair: " => " + showEveryYamlRead: 1 + showAmalgamatedSettings: 0 + showDecorationStartCodeBlockTrace: 0 + showDecorationFinishCodeBlockTrace: 0 + endLogFileWith: "--------------" + showGitHubInfoFooter: 1 + Dumper: + Terse: 1 + Indent: 1 + Useqq: 1 + Deparse: 1 + Quotekeys: 0 + Sortkeys: 1 + Pair: " => " # verbatim environments specified # in this field will not be changed at all! verbatimEnvironments: - verbatim: 1 - lstlisting: 1 - minted: 1 - codeBlock: 1 + verbatim: 1 + lstlisting: 1 + minted: 1 + codeBlock: 1 # verbatim commands such as \verb! body !, \lstinline$something else$ verbatimCommands: - verb: 1 - lstinline: 1 - inlinejava: 1 - inlineracket: 1 + verb: 1 + lstinline: 1 + inlinejava: 1 + inlineracket: 1 # no indent blocks (not necessarily verbatim # environments) which are marked as %\begin{noindent} # or anything else that you detail in the following noIndentBlock: - noindent: 1 - cmhtest: 1 + noindent: 1 + cmhtest: 1 # \begin{document} and \end{document} are treated differently # by latexindent within filecontents environments fileContentsEnvironments: - filecontents: 1 - filecontents*: 1 + filecontents: 1 + filecontents*: 1 # indent preamble indentPreamble: 1 # assume no preamble in cls, sty, by default lookForPreamble: - .tex: 1 - .sty: 0 - .cls: 0 - .bib: 0 + .tex: 1 + .sty: 0 + .cls: 0 + .bib: 0 # some preambles can contain \begin and \end statements # that are not in their 'standard environment block', for example, @@ -141,74 +141,86 @@ defaultIndent: " " # remove trailing whitespace from all lines removeTrailingWhitespace: - beforeProcessing: 0 - afterProcessing: 1 + beforeProcessing: 0 + afterProcessing: 1 # name of code blocks that should have their body aligned at ampersand delimiters lookForAlignDelims: - tabular: - delims: 1 - alignDoubleBackSlash: 1 - spacesBeforeDoubleBackSlash: 1 - multiColumnGrouping: 1 - alignRowsWithoutMaxDelims: 1 - spacesBeforeAmpersand: 1 - spacesAfterAmpersand: 1 - justification: left - alignFinalDoubleBackSlash: 1 - dontMeasure: 0 - delimiterRegEx: '(?]*?>)' - keyEqualsValuesBracesBrackets: - name: '[a-zA-Z@\*0-9_\/.:\#-]+[a-zA-Z@\*0-9_\/.\h\{\}:\#-]*?' - follow: '(?:(?<]+?' - follow: '\h|\R|\{|\[|\$|\)|\(' - UnNamedGroupingBracesBrackets: - follow: '\{|\[|,|&|\)|\(|\$' - arguments: - before: '(?:#\d\h*;?,?\/?)+|\<.*?\>' - between: '_|\^|\*' - trailingComments: - notPreceededBy: '(?]*?>)' + keyEqualsValuesBracesBrackets: + name: '[a-zA-Z@\*0-9_\/.:\#-]+[a-zA-Z@\*0-9_\/.\h\{\}:\#-]*?' + follow: '(?:(?<]+?' + follow: '\h|\R|\{|\[|\$|\)|\(' + UnNamedGroupingBracesBrackets: + follow: '\{|\[|,|&|\)|\(|\$' + arguments: + before: '(?:#\d\h*;?,?\/?)+|\<.*?\>' + between: '_|\^|\*' + trailingComments: + notPreceededBy: '(? \ No newline at end of file +fill="url(#a)"/> diff --git a/pictures/folder-tree-icon.svg b/pictures/folder-tree-icon.svg index cc548d0..c622fb5 100644 --- a/pictures/folder-tree-icon.svg +++ b/pictures/folder-tree-icon.svg @@ -1 +1 @@ -folder-tree \ No newline at end of file +folder-tree diff --git a/pictures/git-logo-dark.svg b/pictures/git-logo-dark.svg index 6b6a26a..59ad8c0 100644 --- a/pictures/git-logo-dark.svg +++ b/pictures/git-logo-dark.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/pictures/git-logo.svg b/pictures/git-logo.svg index 5bf444b..86c7f2f 100644 --- a/pictures/git-logo.svg +++ b/pictures/git-logo.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/sheet/sheet.tex b/sheet/sheet.tex index 0b64ea1..9e321f7 100644 --- a/sheet/sheet.tex +++ b/sheet/sheet.tex @@ -56,15 +56,15 @@ \subsection*{Anmerkungen} Anstatt eines Commits kann auch ein Branch angegeben werden. Ein Branch refenziert einen Commit. - + \subsection*{Vorbereitung} Ein Repository, mit welchem du die nachfolgenden Operationen ausführen kannst, erhälst du über \textsf{init} oder \textsf{clone}. \begin{itemize} \item \texttt{git init} | erstellt lokales Repository im aktuellen Verzeichnis; - Remote muss ggf. gesetzt werden + Remote muss ggf. gesetzt werden \item \texttt{git clone } | cloned Remote-Repository in aktuelles Verzeichnis; - Remote muss ist automatisch gesetzt + Remote muss ist automatisch gesetzt \end{itemize} Zur Zuordnung deiner Commits solltest du deinen Namen und deine E-Mail-Adresse angeben. @@ -77,22 +77,22 @@ \begin{itemize} \item \texttt{git push --set-upstream origin } | - setzt \textsf{origin/} als Remote für lokales Repository - + setzt \textsf{origin/} als Remote für lokales Repository + \end{itemize} \subsection*{Staging} \begin{itemize} \item \texttt{git status} | zeigt Änderungen an \item \texttt{git add } | \textit{staged} gegebene Dateien - \item \texttt{git commit -m ""} | \textit{commited} \textit{staged} Dateien mit gegebener Nachricht + \item \texttt{git commit -m ""} | \textit{commited} \textit{staged} Dateien mit gegebener Nachricht \item \texttt{git rm } | \textit{staged} Lösch-Operation und entfernt Datei \item \texttt{git reset } | \textit{unstaged} gegebene Dateien; - Änderungen bleiben erhalten + Änderungen bleiben erhalten \end{itemize} \subsection*{Branching und Rebasing} \begin{itemize} \item \texttt{git branch} | listet Branches auf; - aktueller Branch: \textsf{*} + aktueller Branch: \textsf{*} \item \texttt{git branch } | leitet Branch vom aktuellen Branch mit gegebenem Namen ab \item \texttt{git checkout } | wechselt zu Commit \item \texttt{git checkout } | merged Branch in aktuellen @@ -104,13 +104,13 @@ \begin{minipage}[t]{.475\textwidth} \subsection*{Zusammenarbeit} \begin{itemize} - + \item \texttt{git push} | - schickt lokale Commits an Remote + schickt lokale Commits an Remote \item \texttt{git fetch} | lädt Änderungen von Remote, - \textit{ohne} diese mit lokalen Branches zu mergen + \textit{ohne} diese mit lokalen Branches zu mergen \item \texttt{git pull} | lädt Änderungen von Remote - \textit{und} merged Änderungen für aktuellen Branch + \textit{und} merged Änderungen für aktuellen Branch \end{itemize} \subsection*{Stashing} @@ -126,12 +126,12 @@ \subsection*{Weiteres} \begin{itemize} \item \texttt{git remote add } | fügt Remote unter gegebenem Namen hinzu; - Standard-Name ist \texttt{origin}; - nicht notwendig bei \texttt{git clone} + Standard-Name ist \texttt{origin}; + nicht notwendig bei \texttt{git clone} \item \texttt{git remove -v}\\Anzeigen der Remotes \end{itemize} \end{minipage} - + \end{document} diff --git a/workshops/workflows.tex b/workshops/workflows.tex index 3be8ee6..ea045fe 100644 --- a/workshops/workflows.tex +++ b/workshops/workflows.tex @@ -23,12 +23,12 @@ \begin{itemize}[<+->] \item Quick Recap \item Git Workflows \& Practices - \begin{itemize} - \item Centralized Workflow - \item Feature Branch Workflow - \item GitHub Flow - \item Kurzer Einblick in andere Workflows - \end{itemize} + \begin{itemize} + \item Centralized Workflow + \item Feature Branch Workflow + \item GitHub Flow + \item Kurzer Einblick in andere Workflows + \end{itemize} \item Git Platforms \item CI/CD \end{itemize}