有些格式实际上是伪装的 zip 文件,例如docx 或 odt。如果我将它们直接存储在版本控制中,它们将被作为二进制文件处理。我理想的解决方案是
- 有一个钩子可以创建一个
foo.docx/
每个目录foo.docx
提交之前的文件,将所有文件解压到其中
- 可选地,有一个重新缩进 xml 文件的钩子
- 有一个可以重新创建的钩子
foo.docx
更新后从存储的文件中
我不希望 docx 文件本身受到版本控制。 (我知道一个相关问题 https://stackoverflow.com/questions/3298525/version-control-for-docx-and-pdf其中建议使用自定义差异的不同方法。)
这可行吗?这对 Mercurial 可行吗?
UPDATE:
我知道钩子。我对具体细节感兴趣。这是一个演示预期行为的会话。
> hg add foo.docx
> hg status
A foo.docx
> hg commit
> # Change foo.docx with external editor
> hg status
M foo.docx
> hg diff
+++ foo.docx/word/document.xml
- <w:t>An idea</w:t>
+ <w:t>A much better idea</w:t>
我也想知道同样的事情,刚刚发现ZipDoc https://www.mercurial-scm.org/wiki/ZipdocExtensionMercurial 的扩展/过滤器,似乎正是这样做的!
还没有尝试过,但看起来很有希望!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)