Mercurial和Word或PDF文档

and*_*007 31 pdf mercurial ms-word

是否可以使用Mercurial版本控制来跟踪Word或PDF文件?有任何限制或问题吗?

sys*_*ich 58

是.

能够为MS Word文档执行有意义的差异.

  • 如果安装了TortoiseHg并且已设置存储库,请右键单击要检查其差异的文件.

  • 在上下文菜单中,单击TortoiseHg> Visual Diffs.

  • 在Visual Diffs对话框中,选择 docdiff,而不是kdiff3.

  • 双击Visual Diffs对话框中的文件.

MS Word将打开比较结果Word文档,该文档将显示当前版本的文档与先前版本之间的差异作为跟踪更改.


Joh*_*lph 7

是的,但当然你无法以任何有意义的方式进行区分.因此,在合并期间,文件将被视为二进制文件.

Mercurial 完全能够跟踪二进制文件:

Mercurial通常不对文件内容做任何假设.因此,Mercurial中的大多数东西适用于任何类型的文件.

无论文件类型如何,Mercurial都存储二进制diff.PDF/Word文件的问题是它们的一些变化通常会导致它们在磁盘上的二进制表示产生巨大差异..docx文档存储为压缩的xml,因为压缩存档中的单个翻转位可能导致zip存档看起来完全不同.

如果您的存储库不会太大,那么使用Mercurial可能不会遇到任何问题.

  • 如果我用"另存为"将XML文件保存为XML ...? (2认同)

小智 6

小心建议

cmd.pdfdiff = [\path\to\diffpdf.exe]
opts.pdfdiff= -a $local $other
Run Code Online (Sandbox Code Playgroud)

$ local和$ other在extdiff上下文中没有任何意义.文字字符串"$ local"和"$ other",而不是文件名,将传递给"diffpdf.exe".我发现这很难.

cmd.pdfdiff = [\path\to\diffpdf.exe]
opts.pdfdiff= -a
Run Code Online (Sandbox Code Playgroud)

将工作,这两个文件将作为"-a"后面的参数传递.cf https://www.mercurial-scm.org/wiki/ExtdiffExtension声明:

每个自定义diff命令可以有两个部分:'cmd'和'opts'部分.cmd.xxx选项定义将运行的可执行程序的名称,opts.xxx定义了一组命令行选项,这些选项将插入到程序名称和文件/目录之间的命令中以进行区分