使用Git或其他版本控制系统管理PDF文件/二进制文件

5
我目前正在进行一个类似于"论文"的LaTeX项目,并且我认为使用Git跟踪工作进展是个安全的想法,因为它可能是我遇到过的最好的版本控制系统。现在,Git将会出色地处理源代码文件,但是它能够很好地处理二进制文件吗?
我不确定是否要跟踪生成的PDF以及*.tex源文件。即使我可以从任何修订/分支重新生成我的PDF,这可能需要时间,而通常更快的方法是只需打开相关的PDF版本;Git会处理这个问题吗?是否有一种方法在Git存储库中标记明确的版本,并且我可以设置它,例如,我可以快速比较今天版本的PDF输出与上周的版本?
回滚到特定分支将覆盖PDF,或者至少需要重新编译;我只想能够记录我的进度并有效地存储它,并在此过程中能够备份我的工作。Git可能是我的解决方案,但是否有更好的解决方案?
编辑:我的兄弟给我发送了一个关于标签的文档链接,因此解决了我问题的版本控制部分。

我想要一段时间来评估git-annex。这可能是一个有趣的解决大型二进制文件和Git问题的方法。 - Rémi
1个回答

2
我认为最好的解决方案取决于您如何使用版本控制系统(VCS)。如果您经常需要对比PDF文件,那么git可能不是很好的选择。
如果您只是需要对LaTeX源代码进行对比,然后简单地查看相关的PDF文件,那么git可能是一个很好的选择。我会使用“二分查找”功能来进行伪对比。Bisect通常用于在修复bug时进行二进制搜索。在bzr中,它的工作原理是可以给每个版本提供一个命令来告诉bzr该bug是否存在。只需给出您想要查看的两个版本,并将evince作为要运行的命令即可。
就我个人而言,我更倾向于仅控制实际的源代码。如果编译PDF文件需要很长时间,请单独解决这个问题。您是否每次更改任何源文件都要生成所有的PDF文件?也许可以使用makefile解决这个问题?

它被称为 git bisect。http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html - Fred Foo
我使用类似于make的系统(latexmk)来编译PDF,它会自动运行xelatex多次,直到需要的次数为止,因此编译只需要时间,而我等待它拉入组成我的主文档的所有各种文件。每次对源代码进行重大更改后,我通常会重新编译PDF,因为我的文档相当复杂,有很多表格和浮动内容,因此需要检查输出结果,经常需要微调。我主要是为了方便快速地比较两个或多个版本的可视化效果,而不是差异。 - Robbie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接