如何使用 gitinfo2 将 Git 标签与格式化的 PDF 对齐?

如何使用 gitinfo2 将 Git 标签与格式化的 PDF 对齐?

我认为我没有正确理解 gitinfo2 包的工作流程。文档说(缩写):

  1. 编辑并格式化 abc.tex 直到准备发布为止
  2. 提交 abc.tex 的发布版本
  3. 标记发布
  4. 结帐 abc.pdf
  5. 格式化并提交 abc.pdf 的发布版本

我的问题:如何将 Git 标记与格式化的 PDF 对齐?所描述的工作流程显示了两次提交...当我遵循它时,提交历史记录中给定的标记是“落后一次”。结果是:在签出给定标记的版本时,PDF 不包含该标记。

使用 smartgit 或命令行工具 git 时我没有看到不同的行为。

这应该是这样的吗?有人能帮我吗?

谢谢你,

托马斯

编辑:添加图片来说明我的问题。

如屏幕截图所示(Smartgit 的图形日志视图),给出标签的提交和添加 pdf 的提交(包含正确的发布信息)并不相同。--> 当签出“Release 1.34”时,PDF 没有正确的信息。只有下列的提交包含一组正确的数据。 包含正确发布信息的 pdf 的提交与添加标签的提交不同。

编辑2:

作为目前的解决方法,我正在按照所述在 PDF 提交后移动标签在这篇文章中

答案1

主要假设是abc.pdf正在被 跟踪git

以下是命令行步骤的列表,用于保持发布号为最新(假设abc.pdf之前某个时间点已经提交过)

从干净的 repo 开始,对 abc.tex 进行修改并编译

git add abc.tex
git commit -m "my commit message goes here"
git tag -a 1.34
git checkout abc.pdf
pdflatex  abc
git add abc.pdf
git commit -m "updated release number in pdf"

这是我用过的文件abc.tex

\documentclass{article}
\usepackage[mark,grumpy]{gitinfo2}

% gitinfo2 settings
\renewcommand{\gitMark}{Release: \gitRel}

\begin{document}
hello world
\end{document}

你的发布标签可能不符合你的预期,原因之一可能是它没有被

RELTAG=$(git describe --tags --long --always --dirty='-*' --match '[0-9]*.*' 2>/dev/null)` in the `.git/hooks/post-.*

文件。如果您的标签以数字以外的任何内容开头,则需要--match相应地更改部分。例如,如果您的标签以 开头V,如V3.2.2,那么您可以使用

RELTAG=$(git describe --tags --long --always --dirty='-*' --match 'V[0-9]*.*' 2>/dev/null)` in the `.git/hooks/post-.*

答案2

感谢 cmhughes 的支持!

我将总结一下:

我的问题是一个与有关的问题gitgitinfo2应该像这样工作 - 这对我来说很好。

从这里开始:

初始点

我们可以

然后在即将出现的对话框中进行更改(看起来像这样):

pick 2840179 Changing abc.tex
pick 00d844f Adding abc.pdf

# Rebase 8c99d54..00d844f onto 8c99d54
#
....

第二个pick(指向最后一次提交)变成squash

这最终会形成(也许)更美好的历史。但是,我们之后还必须用 重新标记git tag -fa 1.34。否则我们会丢失标签...:

输入图像描述,然后更改第二个,然后在此处更改第二个

托马斯

相关内容