Ada*_*deg 20 version-control mercurial zip openoffice.org docx
有些格式实际上是伪装的zip文件,例如docx或odt.如果我将它们直接存储在版本控制中,它们将作为二进制文件处理.我理想的解决方案是
foo.docx/为每个foo.docx文件创建一个目录,将所有文件解压缩到其中foo.docx可以在更新后从存储的文件中重新创建我不希望docx文件本身受版本控制.(我知道一个相关的问题,建议使用自定义差异的不同方法.)
这可行吗?这可以用mercurial吗?
更新:
我知道钩子.我对细节很感兴趣.这是一个演示预期行为的会话.
> 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>
Run Code Online (Sandbox Code Playgroud)
如果你能够超越成功解压缩和破解Openoffice文档的障碍,那么你应该能够使用我们在Mercurial中的过滤系统.这使您可以在每次读/写库中转换文件.
遗憾的是,您必须做的不仅仅是解压缩foo.docx文件.问题是你需要生成一个文件作为输出 - 所以也许你可以unzip foo.docx然后tar生成生成的文件.然后你将对tarball进行版本控制,这应该可以工作,因为tarball只是所有单个文件与一些元信息的未压缩连接.想想看,一个更简单的解决方案是再次压缩解压缩的foo.docx文件,但不指定压缩.这应该给出与使用tar类似的结果.
解决这个问题是我自己想做的事情,所以请通过向Mercurial邮件列表发送邮件回复.
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |