gitinfo2 Exibir apenas branch quando não estiver no master

gitinfo2 Exibir apenas branch quando não estiver no master

Atualmente, estou usando o gitinfo2pacote em meu documento para exibir a revisão, ramificação e data atuais do git. No entanto, eu só gostaria de exibir o branch se não estiver no branch master. Isso exigirá algum envolvimento condicional, \gitBranchmas não consegui descobrir isso.

MWE:

\documentclass{scrbook}

\usepackage{gitinfo2}
% additional install is required. See package documentation for details.

\begin{document}
\begin{titlepage}
\centering
\ \\
\vspace{5cm}
{\Huge Document title}
\vspace{5cm}

Revision: \gitAbbrevHash on branch \gitBranch \ \gitCommitterDate

\end{titlepage}

Some text.

\end{document}

Até agora, tentei isso, sem sucesso:

\documentclass{scrbook}

\usepackage{gitinfo2}
% additional install is required. See package documentation for details.
\newcommand{\masterBranch}{master}

\begin{document}
\begin{titlepage}
\centering
\ \\
\vspace{5cm}
{\Huge Document title}
\vspace{5cm}

Revision: \gitAbbrevHash

\if\gitBranch\masterBranch
\else
    on branch \gitBranch
\fi

\ \gitCommitterDate

\end{titlepage}

Some text.

\end{document}

Responder1

Existem dois problemas:

  • O teste \ifexpande os próximos tokens até encontrar dois tokens não expansíveis para comparação. Portanto, não pode ser usado para comparar definições de macro. A opção \ifxé mais adequada aqui, porque compara os próximos dois tokens sem expandir.

  • \gitBranchnão contém o nome da ramificação diretamente; em vez disso, usa macros expansíveis (espero que sempre) para obter o nome. Também \detokenizeé usado para converter caracteres em tokens com código de categoria 12 (outros), como dígitos e caracteres de pontuação.

Que significa:

  • Uso de \ifxem vez de \if.
  • \edef\gitBranch{\gitBranch}para obter uma macro com o nome do branch expandido.
  • \edef\branchMaster{\detokenize{master}}para obter os códigos de categoria corretos.

Resultado:

\documentclass{scrbook}

\usepackage{gitinfo2}

\edef\masterBranch{\detokenize{master}}
\edef\gitBranch{\gitBranch}

\begin{document}
Revision: \gitAbbrevHash\ %
%
\ifx\gitBranch\masterBranch
\else
    on branch \gitBranch\ %
\fi
%
\gitCommitterDate
\end{document}

Resultado

informação relacionada