si entonces la condición falla para los metadatos de gitinfo2

si entonces la condición falla para los metadatos de gitinfo2

Estoy usando el gitinfo2paquete (2.0.7) junto con el ifthenpaquete (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 \gitBranchsiempre se evalúa como falsa (mientras que la prueba \gitDirtyfunciona correctamente). ¿Qué me estoy perdiendo?

Aquí está el contenido del gitHeadLocal.ginarchivo:

\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 \jobnametodos los caracteres son catcode 12 (como puntuación), no catcode 11 (letras); sin embargo, puedes usar la misma \detokenizeprimitiva e-tex para obtener una cadena de prueba catcode 12. , prueba contra \detokenize{master}en lugar de master.

información relacionada