gitinfo2 メタデータの ifthen 条件が失敗する

gitinfo2 メタデータの ifthen 条件が失敗する

私は、ドキュメントに Git メタデータを含めるために、TeXLive 2017 のgitinfo2パッケージ (2.0.7) とパッケージ (v1.1c) を一緒に使用しています。ifthen

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

目的は、ブランチ名が印刷されることですが、マスター ブランチではない場合のみです。したがって、この例では、「commit e78b91e」のみが期待されます。ただし、結果は「commit e78b91e on branch master」となります。

言い換えると、 のテストは\gitBranch常に false と評価されます ( のテストは\gitDirty正しく機能します)。何が足りないのでしょうか?

ファイルの内容は次のとおりですgitHeadLocal.gin

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

答え1

パッケージが

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

\jobnameすると、文字がすべて catcode 12 (句読点など) であり catcode 11 (文字) ではないため、現在のファイル名をテストしようとした場合に発生するのと同じ問題が発生します。ただし、同じ\detokenizee-tex プリミティブを使用して catcode 12 テスト文字列を取得し、\detokenize{master}ではなくに対してテストすることができますmaster

関連情報