DOCX和PDF的版本控制?

时间:2010-07-21 11:06:27

标签: version-control pdf docx

我最近一直在玩githg,然后我突然意识到这种事情会对文档很有用。

我有一个文档,我在DOCX中编辑并导出为PDF。我尝试使用githg进行版本控制,然后使用hg结果只跟踪二进制文件并且差异没有意义。虽然使用git我可以有意义地区分DOCX(尚未尝试使用PDF)但我想知道是否有更好的方法来实现它而不是我现在正在做的事情。 (理想情况下,不必将Word留给diff将是最佳解决方案。)

- Ashish Gandhi

7 个答案:

答案 0 :(得分:14)

这里有两个不同的概念 - 一个是“版本控制系统可以对文件内容做出一些明智的判断吗?” - 这样它就可以在修订版之间存储增量信息(并做一些事情,比如将责任分配给文件的各个部分)。

另一个是'我有一个文件比较工具,它对我在版本控制系统中的文件类型很有用'。版本控制系统往往带有文件比较工具,这些工具不如专用替代品。但它们几乎总是与更好的差异程序相关联 - 对于所有文件类型或特定文件类型。

因此,通常使用Beyond Compare作为一般比较工具,将Word作为专用的Word文档比较器。

不同版本控制系统的不同之处在于人们如何看待它们处理“二进制文件”,但这通常与处理大文件和提供独占锁定一样多,因为它与文件比较有关。

答案 1 :(得分:6)

http://tortoisehg.bitbucket.io/包含一个名为docdiff的插件,它集成了Word和Excel diff'ing。

答案 2 :(得分:4)

你可以使用Beyond Compare作为hg的外部差异工具。添加/更改您的用户mercurial.ini为:

[extdiff]
cmd.vdiff = c:/path/to/BCompare.exe

然后为docx获得Beyond Compare file viewer rule

现在你应该能够在Beyond Compare中比较两个版本的docx。

答案 3 :(得分:4)

仅对于docx,我在这里编写了多个地方的说明:https://gist.github.com/nachocab/6429893

# download docx2txt by Sandeep Kumar
wget -O docx2txt.pl http://www.cs.indiana.edu/~kinzler/home/binp/docx2txt

# make a wrapper 
echo '#!/bin/bash
docx2txt.pl $1 -' > docx2txt
chmod +x docx2txt

# make sure docx2txt.pl and docx2txt are your current PATH. Here's a guide
http://shapeshed.com/using_custom_shell_scripts_on_osx_or_linux/
mv docx2txt docx2txt.pl ~/bin/

# set .gitattributes (unfortunately I don't this can't be set by default, you have to create it for every project)
echo "*.docx diff=word" > .git/info/attributes

# add the following to ~/.gitconfig
[diff "word"]
    binary = true
    textconv = docx2txt

# add a new alias
[alias]
    wdiff = diff --color-words

# try it
git init

# create my_file.docx, add some content

git add my_file.docx

git commit -m "Initial commit"

# change something in my_file.docx

git wdiff my_file.docx

# awesome!

它在OSX上运行良好

答案 4 :(得分:4)

article使用Pandoc概述了Docx的解决方案 虽然this post使用pdf2html概述了PDF解决方案。

答案 5 :(得分:2)

如果您碰巧使用Mac,我编写了一个git合并驱动程序,可以使用Microsoft Word和跟踪的更改进行合并,并显示任何文件类型之间的冲突Word可以阅读&写。

http://github.com/jasmas/wordMerge

我说'如果你碰巧使用Mac',因为我写的驱动程序使用AppleScript,主要是为了完成这项任务。

将vbscript版本添加到项目中会很不错,但目前我还没有用于测试的Windows环境。任何具有一些基本脚本知识的人都应该能够看看我正在做什么,并在vbscript,powershell或Windows上的任何内容中复制它。

答案 6 :(得分:1)

我在Windows上将SVN(是的,在2020年:-)与TortoiseSVN一起使用。它具有用于比较DOCX文件的内置功能(它以屏幕分为四个部分的模式打开Microsoft Word:更改后,更改前,突出显示更改的文件和更改列表)。下面的屏幕截图(抱歉,MS Word的波兰语版本)。我还检查了TortoiseGIT,它也具有此功能。我已经读过TortoiseHG也有它。

A screenshot of comparison of changes of a file using Microsoft Word and TortoiseSVN