【问题标题】:word-wise git revisions逐字 git 修订
【发布时间】:2013-01-15 13:04:04
【问题描述】:

据我所知,git 通过保存更改的行来存储修订。运行文本文档,如文档或冗长的 LaTeX 文件,通常有很长的行或在 80 个字符后被强制中断。当一个词被更改时,它会导致更改的行发生巨大差异,从而使 git 存储库膨胀。

是否可以通过单词而不是行使 git 工作?我知道有git diff --color-words 以更漂亮的格式输出更改的单词。但这不会影响这些更改在内部存储的方式。

我也知道重新格式化文档以使其更适合版本控制的做法,方法是在每个句子后开始一个新行。但这会严重扰乱大多数文档的格式,同时仍然只会将问题缩小到一个句子长度。

换句话说,我可以将 git 配置为在创建修订时考虑空格字符而不是换行符吗?

【问题讨论】:

    标签: git text latex


    【解决方案1】:

    Git 不存储差异。 SVN 可以。 Git 通常存储完整的 blob。它还进行打包以节省空间(在运行git gc 或推送到远程时),但同样,这不是基于行的,因为它使用二进制增量格式。唯一令人讨厌的是您注意到差异输出。但这与 Git 存储数据的方式无关。您可能想阅读 ProGit 的 Is the git binary diff algorithm (delta storage) standardized?pack-file specs 和部分 9.29.4

    【讨论】:

      【解决方案2】:

      没有比将段落分成几行更好的解决方案了。

      我知道有 git diff --color-words 输出改变了 格式更漂亮的单词。但这并不影响这些 更改在内部存储。

      This answer 对在 git 中处理 LaTeX 有很好的建议,以及 this one 在 git 中使用 latexdiff

      【讨论】:

      • 请注意,如果您使用(出色的)latexdiff 实用程序,则在使用formatting your code 时应小心。在命令参数之间有 no 换行符尤为重要。例如。当我开始时,我有很多 \frac{...}\n{...} 完全破坏了 latexdiff。改为\frac{...}{\n...}(注意换行符的位置)。
      猜你喜欢
      • 1970-01-01
      • 2018-02-13
      • 2016-01-22
      • 1970-01-01
      • 2010-12-03
      • 2011-05-04
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多