【问题标题】:Mercurial and Word or PDF documentsMercurial 和 Word 或 PDF 文档
【发布时间】:2010-03-17 11:26:53
【问题描述】:

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

【问题讨论】:

    标签: pdf mercurial ms-word


    【解决方案1】:

    是的。

    能够对 MS Word 文档进行有意义的比较。

    • 如果您安装了 TortoiseHg 并且 你已经建立了一个存储库, 右键单击您要使用的文件 想要检查差异。

    • 在上下文菜单中,单击 TortoiseHg > 视觉差异。

    • 在“视觉差异”对话框中,选择 docdiff,而不是 kdiff3。

    • 双击 Visual 中的文件 差异对话框。

    MS Word 将打开一个比较结果 Word 文档,该文档将文档的当前版本与以前版本之间的差异显示为修订。

    【讨论】:

    • 非常酷!一个问题:如果我有未提交的更改,我只能做一个视觉差异,它只会将我当前的更改与上次提交进行比较。有没有办法指定要比较哪两个修订版?
    • 您可以右键单击任何修订版并执行“Diff to Local”@JasonDown 以与当前工作目录进行比较。
    【解决方案2】:

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

    Mercurial 是 perfectly capable 的跟踪二进制文件:

    Mercurial 通常不会 关于文件内容的假设。因此, Mercurial 中的大多数东西都可以正常工作 任何类型的文件。

    无论文件类型如何,Mercurial 都会存储二进制差异。 PDF/Word 文件的问题在于,对它们稍加改动通常会导致它们在磁盘上的二进制表示存在巨大差异。 .docx 文档以压缩 xml 的形式存储,因为压缩存档中的单个翻转位会导致 zip 存档看起来完全不同。

    如果您不将存储库扩展得过大,使用 Mercurial 可能不会遇到任何问题。

    【讨论】:

    • 除非二进制文件对文档的小更改会导致大的二进制更改,那么二进制差异将与每个版本的文件大小大致相同。我会使用单词 xml 格式而不是二进制格式
    • @jk:你说得对,事实上我假设他使用的是 Office 2007 格式,唯一的问题是它在内部压缩了 AFAIK。但人们倾向于指责 VCS 没有经常正确处理二进制文件。
    • 如果我用“另存为”将 word 文件保存在 XML 中...?
    • 那么您将在 hg 中获得有效的存储,并且可以想象使用普通文本合并来合并文档,似乎确实有可用的特殊单词合并工具可能(或可能不会)更好跨度>
    【解决方案3】:

    注意建议

    cmd.pdfdiff = [\path\to\diffpdf.exe]
    opts.pdfdiff= -a $local $other
    

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

    cmd.pdfdiff = [\path\to\diffpdf.exe]
    opts.pdfdiff= -a
    

    会起作用,这两个文件将作为“-a”后面的参数传递。参考文献https://www.mercurial-scm.org/wiki/ExtdiffExtension 声明的地方:

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

    【讨论】:

      【解决方案4】:

      对于 Pdf 文件,我能够获得 GPL 许可 DiffPDF 连接,以便在 pdf 文件的修订之间进行比较。

      我在mercurial.ini 文件中添加了以下内容:

      [extdiff]
      cmd.pdfdiff = [\path\to\diffpdf.exe]
      opts.pdfdiff= -a $local $other
      
      [diff-patterns]
      **.pdf=pdfdiff
      

      现在,当我单击 tortoisehg 中的 pdf 文件(或在 cmd 行使用 hg pdfdiff)时,它会打开两个文件进行比较。由于我的 pdf 倾向于包含图像,我使用 appearance 比较器(opts 中的-a)。如果您主要是文本,则可以改用-w

      它默认为 highlighting 来显示差异。我更喜欢 Src Xor Dest 选项来显示差异,但我认为没有 cmd 行选项。

      【讨论】:

      • DiffPDF 未获得 GPL 许可:“DiffPDF 是一种商业 Windows 图形用户界面 (GUI) 应用程序......”
      猜你喜欢
      • 2013-09-25
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2021-02-16
      相关资源
      最近更新 更多