【问题标题】:Managing PDFs/binaries with Git or other VCS使用 Git 或其他 VCS 管理 PDF/二进制文件
【发布时间】:2011-03-27 12:25:07
【问题描述】:

我目前正在开发一个 LaTeX 项目,以完成某种“论文”,我认为使用 Git 跟踪正在进行的工作是一个安全的想法,因为它可能是最好的版本控制我遇到的系统。现在,Git 将出色地处理源代码文件,但它处理二进制文件的能力如何?

我不确定是否要跟踪我生成的 PDF 以及 *.tex 源。尽管我可以从任何修订/分支重新生成我的 PDF,但这可能会很耗时,而且通常只调出相关的 PDF 版本会更快; Git会处理这个吗?有没有办法在 Git 存储库中标记显式版本,我可以设置它吗,例如,我可以快速将今天版本的 PDF 输出与上周的版本进行比较?

回滚到特定分支将覆盖 PDF,或者至少需要重新编译;我只是希望能够记录我的进度并有效地存储它,并在此过程中备份我的工作。 Git 可能是我的解决方案,但还有更好的解决方案吗?

编辑我的兄弟给我发了一个链接,指向tagging 上的一些文档,这样就解决了我问题的版本控制部分。

【问题讨论】:

  • 我想评估git-annex 一段时间。解决大二进制文件和 git 的问题可能很有趣

标签: git version-control pdf latex binary


【解决方案1】:

我认为最佳解决方案将取决于您将如何使用 VCS。如果您要经常在 PDF 之间进行比较,那么 git 可能不是一个很好的解决方案。

如果您打算对 LaTeX 源代码进行比较,然后只是浏览相关的 PDF,那么 git 可能是一个不错的选择。我这样做的方法是使用“二等分”功能来做一种伪差异。 Bisect 通常用于对修订历史进行二进制搜索以查找错误。它在 bzr 中的工作方式,您可以在每个版本上运行一个命令,该命令将告诉 bzr 是否存在错误。只需提供您要查看的两个转速,并让 evince 运行命令。

就个人而言,我更倾向于只控制实际来源。如果您的 PDF 需要很长时间才能编译,请单独解决该问题。每次更改任何源文件时,您是否都会生成所有 PDF?也许一个makefile可以解决这个问题?

【讨论】:

  • 我使用类似 make 的系统 (latexmk) 来编译 PDF,它会根据需要自动运行 xelatex 多次,所以编译只需要时间,而我等待它拉入所有构成我的主文档的各种文件。我通常在每次对源代码进行重大更改后重新编译 PDF,因为我的文档相当复杂,有很多表格和浮点数,所以我需要目视检查输出,因为通常需要进行一些微调。我主要是为了方便快速直观地比较两个或多个版本,而不是差异。
猜你喜欢
  • 2010-11-10
  • 2014-06-25
  • 2011-04-05
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
相关资源
最近更新 更多