From 2b9d859c51b14091c11da15c4d9e167a0c92ce52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 11 Nov 2013 15:30:12 +0100 Subject: [PATCH] git als submodule eingebunden --- bericht/abschnitte/bs-git.tex | 34 +++++++++++++--------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/bericht/abschnitte/bs-git.tex b/bericht/abschnitte/bs-git.tex index 7abdbbc..9bea3f8 100644 --- a/bericht/abschnitte/bs-git.tex +++ b/bericht/abschnitte/bs-git.tex @@ -16,15 +16,12 @@ Nun kann die eigentliche Konfiguration per git heruntergeladen werden: Wir legten in dieser Konfiguration das Repository {\tt lctp} an und gaben allen Benutzern Zugriff darauf. Die gitolite-Konfiguration befindet sich als -Git-Submodule im Verzeichnis {\tt aufgabe4/gitolite-admin}. Das lctp-Repository -wiederum lässt sich mit folgendem Befehl clonen: +Git-Submodule im Verzeichnis {\tt aufgabe4/gitolite-admin}. +Das lctp-Repository wiederum lässt sich mit folgendem Befehl clonen: -\shellcmd{git clone git@141.76.90.104:lctp.git} +\shellcmd{git clone git@141.76.90.104:lctp.git lctp-gruppe4} -Die einzelnen Bereiche des Repositories können dann ausgecheckt werden: - -\shellcmd{git checkout logs} \\ -\shellcmd{git checkout etckeeper} +\shellcmd{cd lctp-gruppe4 \&\& git submodule init \&\& git submodule update} \subsubsection{etckeeper} @@ -32,17 +29,14 @@ Um die Konfiguration in {\tt /etc } versionierbar und damit nachvollziehbar zu m \shellcmd{yaourt -S etckeeper \&\& sudo etckeeper init} -\shellcmd{cd /etc/.git \&\& sudo git remote add git@localhost:lctp.git} +\shellcmd{cd /etc/.git \&\& sudo git remote add git@zotac0:lctp.git} Dieses legt ein {\tt git}-Repository in {\tt /etc/.git} an und erstellt Commits bei Änderungen in {\tt /etc}. Um die Konfiguration vom Bericht zu trennen, haben wir uns entschieden, {\tt -etckeeper} in einen dedizierten Branch im {\tt lctp}-Repository pushen: +etckeeper} in ein dediziertes Repository ({\tt logs}) pushen und als Submodule +im {\tt lctp}-Repository einzubinden: -\shellcmd{sudo git push -u origin master:etckeeper} - -Dieser Branch lässt sich auf folgender Weise auschecken: - -\shellcmd{git checkout -b etckeeper origin/etckeeper} +\shellcmd{sudo git remote add origin git@zotac0:etckeeper.git} Anders als bei anderen Paketmanagern wie {\tt apt} auf Debian, existieren in {\tt pacman} (\ref{sec:pacman}) keine Hooks. @@ -52,7 +46,8 @@ welches im \href{https://github.com/joeyh/etckeeper/blob/master/debian/cron.daily}{Git-Repository} (Stand 07.11.2013) von {\tt etckeeper} liegt, als cronjob installiert (siehe -\emph{aufgabe4/cron.daily/etckeeper}). +\emph{aufgabe4/cron.daily/etckeeper}). + \subsubsection{Logs in git} Arch Linux setzt in der Standard-Installation {\tt journald} als Logging-Daemon ein. Dieses benutzt im Unterschied zu herkömmlichen Syslog-Varianten ein Binärformat zum Speichern. @@ -61,9 +56,6 @@ von git verwaltet zu werden. Deswegen haben wir zusätzlich {\tt syslog-ng} installiert und {\tt journald} so konfiguriert, das dieses ebenfalls in das syslog schreibt (siehe \emph{aufgabe4/journald.conf}). Für tägliche commits haben wir hierfür das Shell-Script {\tt git-commit-log} nach {\tt /etc/cron.daily/} installiert (siehe -\emph{aufgabe4/cron.daily/git-commit-log}). Dieses pusht die Log-Dateien in den -logs-Branch des lctp-Repository. - -Dieser Branch lässt sich folgendermaßen auschecken: - -\shellcmd{git checkout -b logs origin/log} +\emph{aufgabe4/cron.daily/git-commit-log}). Dieses pusht die Log-Dateien in das +logs-Repository. Es ist als Submodule im Verzeichnis {\tt logs} im +lctp-Repository eingebunden.