A condição ifthen falha para metadados do gitinfo2

A condição ifthen falha para metadados do gitinfo2

Estou utilizando o gitinfo2pacote (2.0.7) junto com o ifthenpacote (v1.1c), ambos do TeXLive 2017, para incluir metadados do Git no meu 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}

A intenção é que o nome da filial seja impresso, mas somente se não for a filial master. Então, para o exemplo, eu esperaria apenas "commit e78b91e". No entanto, o resultado é "confirmar e78b91e no branch master".

Em outras palavras, o teste for \gitBranchsempre é avaliado como falso (enquanto o teste for \gitDirtyfunciona corretamente). o que estou perdendo?

Aqui está o conteúdo do gitHeadLocal.ginarquivo:

\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}

Responder1

Se o pacote definir

 \gitBranch=\long macro: ->\detokenize \expandafter {\bcut }

Então você terá o mesmo problema que ocorre se você tentar testar o nome do arquivo atual, pois \jobnameos caracteres são todos catcode 12 (como pontuação) e não catcode 11 (letras), no entanto, você pode usar o mesmo \detokenizeprimitivo e-tex para obter uma string de teste catcode 12 , teste contra \detokenize{master}em vez de master.

informação relacionada