From 96c6777a6839ed440d712ee57962a749bd045334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hilbig?= Date: Mon, 27 Jun 2016 22:17:53 +0200 Subject: [PATCH] =?UTF-8?q?Kleinere=20Doku=20Fehler=20=C3=BCberarbeitet,?= =?UTF-8?q?=20Literatur=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build | 19 ++++---- dokumentation.tex | 88 +++++++++++++++++++++++------------ gfi-run => gfi-run.py | 0 post-commit => post-commit.py | 0 post-merge => post-merge.py | 0 5 files changed, 69 insertions(+), 38 deletions(-) rename gfi-run => gfi-run.py (100%) rename post-commit => post-commit.py (100%) rename post-merge => post-merge.py (100%) diff --git a/build b/build index c7bd86d..c9fa0a5 100755 --- a/build +++ b/build @@ -3,9 +3,10 @@ echo "===================================================================" >> bu echo "=+-Lauf vom `date +%Y-%m-%d:%H:%M:%S`----------------------------------+=" >> build.log sty2dtx -O -c gitfile-info.sty -o gitfile-info/gitfile-info.sty >> build.log echo "=+-sty2dtx abgeschlossen-----------------------------------------+=" >> build.log -cp -v gfi-run gitfile-info/ -cp -v post-commit gitfile-info/ -cp -v post-merge gitfile-info/ +cp -v gfi-run.py gitfile-info/ +cp -v post-commit.py gitfile-info/ +cp -v post-merge.py gitfile-info/ +cp -v dokumentation.gfi gitfile-info/gitfile-info.gfi sed "s/Version: [0-9].[0-9]*/Version: $1/1" README > /tmp/output.readme sed "s/Last Change: [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/Last Change: `date +%Y-%m-%d`/1" /tmp/output.readme > output.readme mv -v output.readme gitfile-info/README @@ -13,13 +14,13 @@ echo "=+-Kopieren und Anpassen abgeschlossen---------------------------+=" >> bu cd gitfile-info echo "=+-Packe DTX-----------------------------------------------------+=" >> build.log ../makedtx.pl -src "(.*)\.sty=>\1.sty" -doc ../dokumentation.tex \ - -src "gfi-run=>gfi-run" -src "post-commit=>post-commit" -src "post-merge=>post-merge" \ - -macrocode "gfi-run" -macrocode "post-commit" -macrocode "post-merge" \ - -setambles "gfi-run=>\\nopreamble\\nopostamble" -setambles "post-commit=>\\nopreamble\\nopostamble" \ - -setambles "post-merge=>\\nopreamble\\nopostamble" \ - -comment "gfi-run" -comment "post-commit" -comment "post-merge" \ + -src "gfi-run.py=>gfi-run.py" -src "post-commit.py=>post-commit.py" -src "post-merge.py=>post-merge.py" \ + -macrocode "gfi-run.py" -macrocode "post-commit.py" -macrocode "post-merge.py" \ + -setambles "gfi-run.py=>\\nopreamble\\nopostamble" -setambles "post-commit.py=>\\nopreamble\\nopostamble" \ + -setambles "post-merge.py=>\\nopreamble\\nopostamble" \ + -comment "gfi-run.py" -comment "post-commit.py" -comment "post-merge.py" \ -date "`date +%Y-%m-%d:%H:%M:%S` -- Version $1" \ - -author "André Hilbig, mail@andrehilbig.de" -codetitle "Implementation" gitfile-info + -author "André Hilbig, mail@andrehilbig.de" -codetitle "Code" gitfile-info pdflatex gitfile-info.dtx CHECKSUM=$(grep "The checksum should be" gitfile-info.log | grep -o "[0-9]*") echo "The checksum is: $CHECKSUM" diff --git a/dokumentation.tex b/dokumentation.tex index 7cae606..1098cfd 100644 --- a/dokumentation.tex +++ b/dokumentation.tex @@ -18,6 +18,31 @@ url = {https://github.com/gitpython-developers/GitPython}, urldate = {2016-06-23}, } + @electronic{datenumber, + author = "Jörg-Michael Schröder", + month = {Aug}, + year = "2001", + title = "The datenumber.sty package v0.02", + url = {http://www.ctan.org/pkg/datenumber}, + urldate = {2016-06-27}, + } + @electronic{svninfo, + author = "Achim Brucker", + month = {Mar}, + year = "2010", + title = "The svninfo package", + url = {http://www.ctan.org/pkg/svninfo}, + urldate = {2016-06-27}, + } + @electronic{gitinfo2, + author = "Brent Longborough", + month = {Nov}, + year = "2015", + title = "gitinfo2.sty", + subtitle = "A package for accessing metadata from the git dvcs", + url = {http://www.ctan.org/pkg/gitinfo2}, + urldate = {2016-06-27}, + } \end{filecontents} \usepackage[% backend=biber, @@ -242,20 +267,21 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} \item Die erzeugte Paketdatei (*.sty) muss in einem für \TeX\ lesbarem Verzeichnis platziert werden. Für eine lokale Installation bietet sich dafür - \verb|~/texmf/tex/latex/bewerbung/| + \verb|~/texmf/tex/latex/gitfile-info/| an. \item Außerdem werden die drei Python-Scripte - \verb|gfi-run|, \verb|post-commit| und \verb|post-merge| + \verb|gfi-run.py|, \verb|post-commit.py| und \verb|post-merge.py| erstellt. Diese Dateien müssen im Repository platziert werden (vgl. \prettyref{sec:installation-git}). \end{itemize} \subsection{Einrichtung des Repositories}\label{sec:installation-git} - Die beiden Hooks \verb|post-commit| und \verb|post-merge| müssen innerhalb des Repositories im - Verzeichnis \verb|.git/hooks| als ausführbare Dateien platziert werden. + Die beiden Scripte \verb|post-commit.py| und \verb|post-merge.py| müssen innerhalb des Repositories im + Verzeichnis \verb|.git/hooks| als ausführbare Dateien unter den Namen \verb|post-commit| bzw. + \verb|post-merge| platziert werden. \begin{description} \item[\verb|post-commit|] wird bei jedem Commit ausgeführt (nachdem der Commit vollständig beendet ist) und schreibt für die veränderten \TeX-Dateien Änderungen in eine Hilfsdatei. @@ -263,17 +289,17 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} explizit auch nach einem pull) ausgeführt, um Veränderungen in die Hilfsdatei einzutragen. \end{description} - Außerdem sollte das Script \verb|gfi-run| möglichst für jeden Nutzer im Repository ausführbar - platziert werden. Wird das Script ohne Parameter ausgeführt liest es sämtliche unter + Außerdem sollte das Script \verb|gfi-run.py| möglichst für jeden Nutzer im Repository ausführbar + platziert werden. Wird das Script ohne Parameter ausgeführt, liest es sämtliche unter Versionsverwaltung stehende Dateien aus und erstellt die passenden Hilfsdateien. Wird dem Script eine \TeX-Datei (inkl. Endung) übergeben, wird die Hilfsdatei für diese spezielle Datei neu erstellt. \begin{lstlisting}[gobble=10,numbers=none,language=bash,% linewidth=0.7\textwidth,resetmargins=false] # alle *.tex-Dateien aktualisieren - python gfi-run + python gfi-run.py # eine spezielle *.tex-Datei aktualisieren - python gfi-run datei.tex + python gfi-run.py datei.tex \end{lstlisting} Die Scripte sollten in einer Standard \texttt{texlive}"~Installation unter dem Pfad @@ -286,24 +312,26 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} Außerdem muss in der \verb|*.gitignore| der Filter \verb|*.gfi| festgelegt werden, da die Hilfsdateien in \textbf {keinem} Fall unter Versionsverwaltung stehen dürfen. Daher muss ein - Nutzer nach einem \textit{frischen} Clone das Script \verb|gfi-run| aufrufen, um alle + Nutzer nach einem \textit{frischen} Clone das Script \verb|gfi-run.py| aufrufen, um alle Hilfsdateien lokal zu erstellen. \section{Funktionsweise} \subsection{Vorüberlegungen} - Zunächst stand die Überlegung im Raum, Meta-Daten ähnlich wie beim Paket \verb|svninfo| direkt - in die betreffenden \TeX-Dateien einzutragen. Dadurch wird jedoch der Arbeitsstand verändert - und der eingetragene Commit ist nicht mehr aktuell. Es müsste ein erneuter Commit erfolgen - usw. Hier gäbe es die Möglichkeit, automatisierte Commits zu erstellen. Diese würden jedoch - das Repository aufblähen. + Zunächst stand die Überlegung im Raum, Meta-Daten ähnlich wie beim Paket \verb|svninfo| + \autocite[vgl.][]{svninfo} direkt in die betreffenden \TeX-Dateien einzutragen. Dadurch wird + jedoch der Arbeitsstand verändert und der eingetragene Commit ist nicht mehr aktuell. Es + müsste ein erneuter Commit erfolgen usw. Hier gäbe es die Möglichkeit, automatisierte Commits + zu erstellen. Diese würden jedoch das Repository aufblähen. Daher entschied ich mich dafür, die passenden Meta-Daten in eine Hilfsdatei (\verb|*.gfi|) - einzutragen. Hier können per simplem \LaTeX-Befehl Metadaten eingegeben werden. + einzutragen. Hier können per simplem \LaTeX-Befehl Metadaten eingegeben werden. Das bereits + bestehende Paket gitinfo2 \autocite[vgl.][]{gitinfo2} konnte nicht benutzt werden, da es das + gesamte Repository ausliest und nicht zwischen einzelnen Dateien unterscheidet. \subsection{Umsetzung} Bei jedem Commit oder Pull gehen die Scripte alle geänderten \TeX-Dateien durch und aktualisieren die entsprechenden Hilfsdateien. Hier werden \textbf{nur} Dateien mit der Endung - \verb|*.tex| berücksichtigt! Bei Problemen kann das Script \verb|gfi-run| per Hand aufgerufen + \verb|*.tex| berücksichtigt! Bei Problemen kann das Script \verb|gfi-run.py| per Hand aufgerufen werden, um eine Aktualisierung zu erzwingen (vgl. \prettyref{sec:installation-git}). @@ -340,6 +368,8 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} \item[\wM{gfiGetCommitAbr}] gibt die Kurzform des letzten Commits zurück. \end{description} + Ergänzend sei auf das + \subsection{Versionsinfo} \DescribeMacro{\gfiInfo} Sofern eine kleine Zusammenfassung der aktuellen Datei gezeigt werden soll, kann dazu das Makro @@ -386,10 +416,10 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} \end{gfiInfoBox} \subsection{Laden weiterer \TeX-Dateien}\label{sec:nutzung-include} - Ähnlich wie im Paket \verb|svninfo| soll auch die Aufsplittung eines größeren Projekts in - mehrere Teildateien mit den entsprechenden Versionen der einzelnen Dateien auslesbar sein. Dafür - müssen diese Dateien ebenfalls die Endung \verb|*.tex| haben, um von den Scripten erkannt zu - werden. + Ähnlich wie im Paket \verb|svninfo| \autocite[vgl.][]{svninfo} soll auch die Aufsplittung eines + größeren Projekts in mehrere Teildateien mit den entsprechenden Versionen der einzelnen Dateien + auslesbar sein. Dafür müssen diese Dateien ebenfalls die Endung \verb|*.tex| haben, um von den + Scripten erkannt zu werden. \DescribeMacro{gfiInclude} \DescribeMacro{gfiInput} @@ -443,15 +473,15 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} \end{lstlisting} - \subsubsection{gfi-run} - Das \verb|gfi-run| kann sowohl zur Initialisierung als auch zur erzwungenen Aktualisierung + \subsubsection{gfi-run.py} + Das \verb|gfi-run.py| kann sowohl zur Initialisierung als auch zur erzwungenen Aktualisierung aller \TeX-Dateien benutzt werden. \begin{lstlisting}[gobble=12,numbers=none,language=bash,% linewidth=0.7\textwidth,resetmargins=false] # alle *.tex-Dateien aktualisieren - python gfi-run + python gfi-run.py # eine spezielle *.tex-Datei aktualisieren - python gfi-run datei.tex + python gfi-run.py datei.tex \end{lstlisting} Das Script sucht dabei mithilfe von \verb|git ls-files| nach allen unter Versionsverwaltung @@ -459,24 +489,24 @@ pdftitle = {\LaTeX-package for reading git commit info for specific files} einzeln die passende Hilfsdatei mit den Metadaten. Wird eine Datei übergeben, so wird nicht geprüft, ob diese unter Verwaltung steht und eine Hilfsdatei (im Zweifel leer) erstellt. - \lstinputlisting[language=python,title=Quelltext von gfi-run]{gfi-run} + \lstinputlisting[language=python,title=Quelltext von gfi-run.py]{gfi-run.py} - \subsubsection{post-commit} + \subsubsection{post-commit.py} Der \verb|post-commit|-Hook von \verb|git| wird nach jedem Commit, der erfolgreich ausgeführt wurde, automatisch ausgeführt. Der Hook liest aus, welche Dateien sich verändert haben und ändert für die passenden \TeX-Dateien die Hilfsdateien mit den neuen Metadaten. Das Script sollte im Verzeichnis \verb|.git/hooks| ausführbar platziert werden. - \lstinputlisting[language=python,title=Quelltext von post-commit]{post-commit} + \lstinputlisting[language=python,title=Quelltext von post-commit.py]{post-commit.py} - \subsubsection{post-merge} + \subsubsection{post-merge.py} Der \verb|post-merge|-Hook von \verb|git| wird nach jedem Merge ausgeführt. Er wird auch bei einem nicht erfolgreichen Merge aufgerufen. Explizit bedeutet dies auch, dass nach jedem Pull das Script ausgeführt wird. Der Hook liest aus, welche Dateien sich verändert haben und ändert für die passenden \TeX-Dateien die Hilfsdateien mit den neuen Metadaten. Das Script sollte im Verzeichnis \verb|.git/hooks| ausführbar platziert werden. - \lstinputlisting[language=python,title=Quelltext von post-merge]{post-merge} + \lstinputlisting[language=python,title=Quelltext von post-merge.py]{post-merge.py} \addcontentsline{toc}{section}{Literatur} \printbibliography[title=Weiterführende Quellen] diff --git a/gfi-run b/gfi-run.py similarity index 100% rename from gfi-run rename to gfi-run.py diff --git a/post-commit b/post-commit.py similarity index 100% rename from post-commit rename to post-commit.py diff --git a/post-merge b/post-merge.py similarity index 100% rename from post-merge rename to post-merge.py