【问题标题】:Version control Word .docx files with docx2txt with Git on Mac OS X版本控制 Word .docx 文件与 docx2txt 在 Mac OS X 上与 Git
【发布时间】:2014-04-07 01:34:29
【问题描述】:

Git 网站上有一个详细的说明,用于使用catdoc 控制Microsoft Word .doc 文件的版本。

http://git-scm.com/book/en/Customizing-Git-Git-Attributes

但是,我意识到这不适用于 .docx 文件。您似乎需要docx2txtunoconv 而不是catdoc (found here)。我无缘无故地决定使用docx2txt,但我被困在将docx2txt 安装到Mac OS X 中。

This 有点说明了这些步骤。据我了解,您需要的只是docx2txt.pl 在某个合理的地方。我以为/usr/local/bin/ 可以。我在那里复制了它。然后,根据the instruction,我尝试了以下:

$ cd /usr/local/bin/
$ echo '#!/bin/bash
docx2txt.pl "$1" -' > docx2txt

当我尝试这个时:

$ docx2txt

我明白了

Can't read docx file <>!

所以,docx2txt 似乎在路径中。

然后我在存储库文件夹(ASCII,LF)中编辑.gitattributes,添加以下行:

*.docx diff=wordx

然后,我还编辑了存储库中的 .git/config 文件如下:

[diff "wordx"]
    binary = true
    textconv = docx2txt

因为仓库已经在使用,所以我没有做git init。我在存储库中编辑了一个 .docx Word 文件,然后在终端中输入了git diff。但结果并不成功。

Binary files a/foo/foo.docx and b/foo/foo.docx differ

有人有什么建议吗?

【问题讨论】:

  • 你在 docx2txt 上 chmod +x 了吗?
  • 我没有,但是感谢您的帖子,我不知何故意识到我使用了错误的目录 /usr/bin/ 而不是 /usr/local/bin/。这解决了安装中的问题,但我无法更进一步。我会更新我的问题。
  • 我唯一能看到的,我所做的与上面不同的是,sudo make 安装 docx2txt。我现在在 OSX 上完美地区分 .dotx 文件,谢谢! (顺便说一句,不需要binary = true 选项,因此可以像这样从命令行设置 .git/config:git config diff.wordx.textconv docx2txt,其中 docx2txt 在上面给出并放置在 $PATH 中,如果不是,如果它可以'看不到 docx2txt.pl,脚本不会运行,您将退回到通常的“二进制文件 a/blah b/blah 不同”)
  • 我这样做了:gist.github.com/klang/11172484
  • 干杯。听起来很有希望。我稍后会试一试。

标签: macos git terminal ms-word installation


【解决方案1】:

感谢klang,我成功了。现在我可以在 Mac OS X (10.9) 的 Terminal.app 中区分 .docx 文件。但是这个不能与 SourceTree GUI 无缝协作。以下与巴生的基本相同,但略有修正。

http://docx2txt.sourceforge.net/下载并安装docx2txt转换器

wget -O doc2txt.tar.gz http://docx2txt.cvs.sourceforge.net/viewvc/docx2txt/?view=tar
tar zxf doc2txt.tar.gz
cd docx2txt/docx2txt/
sudo make

然后制作一个小包装脚本,将 docx2txt 输出到 STDOUT

echo '#!/bin/bash
docx2txt.pl "$1" -' > /usr/local/bin/docx2txt
chmod +x /usr/local/bin/docx2txt

您的存储库中 (Word) .docx 差异的 Git 属性

echo "*.docx diff=wordx" >> .gitattributes
git config diff.wordx.textconv docx2txt

如果设置不应与项目一起提交,请使用.git/info/attributes

(Word).doc 差异的 Git 属性

echo "*.doc diff=word" >> .gitattributes
git config diff.word.textconv strings

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2012-08-20
    • 1970-01-01
    • 2017-10-09
    • 2011-07-29
    • 2020-05-21
    • 2011-04-07
    相关资源
    最近更新 更多