
Estoy usando el gitinfo2
paquete (2.0.7) junto con el ifthen
paquete (v1.1c), ambos de TeXLive 2017, para poder incluir metadatos de Git en mi documento:
\documentclass{article}
\usepackage[local]{gitinfo2}
\usepackage{ifthen}
\begin{document}
commit \gitAbbrevHash
\ifthenelse{\equal{\gitBranch}{master}}{}{ on branch \gitBranch}%
\ifthenelse{\equal{\gitDirty}{}}{}{ with local changes}
\end{document}
La intención es que se imprima el nombre de la sucursal, pero solo si no es la sucursal maestra. Entonces, para el ejemplo, esperaría solo "confirmar e78b91e". Sin embargo, el resultado es "confirmar e78b91e en la rama maestra".
En otras palabras, la prueba for \gitBranch
siempre se evalúa como falsa (mientras que la prueba \gitDirty
funciona correctamente). ¿Qué me estoy perdiendo?
Aquí está el contenido del gitHeadLocal.gin
archivo:
\usepackage[%
shash={e78b91e},
lhash={e78b91e0e8582d75273ad4f04bda5ae3c52055bd},
authname={Abcd Efgh},
authemail={[email protected]},
authsdate={2018-02-19},
authidate={2018-02-19 20:00:05 +0100},
authudate={1519066805},
commname={Abcd Efgh},
commemail={[email protected]},
commsdate={2018-02-19},
commidate={2018-02-19 20:02:01 +0100},
commudate={1519066921},
refnames={ (HEAD -> master)},
firsttagdescribe={e78b91e},
reltag={e78b91e}
]{gitexinfo}
Respuesta1
Si el paquete se establece
\gitBranch=\long macro: ->\detokenize \expandafter {\bcut }
Luego obtienes el mismo problema que ocurre si intentas probar el nombre de archivo actual, ya que \jobname
todos los caracteres son catcode 12 (como puntuación), no catcode 11 (letras); sin embargo, puedes usar la misma \detokenize
primitiva e-tex para obtener una cadena de prueba catcode 12. , prueba contra \detokenize{master}
en lugar de master
.