2014-03-05 70 views
3

Git網站上有一個詳細的指令,用於控制Microsoft Word .doc文件的版本,其中包含catdoc版本控制在Mac OS X上帶有docx2txt和Git的Word .docx文件

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

但是,我意識到,這並不爲.docx文件。看來您需要docx2txtunoconv而不是catdocfound 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 /配置文件中的信息庫如下:

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

因爲存儲庫已經在使用,所以我沒有做git init。我在存儲庫中編輯了一個.docx Word文件,然後在終端中輸入git diff。但結果並不成功。

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

任何人都可以有任何建議嗎?

+0

你使用chmod + x關於docx2txt? – evading

+0

我沒有,但是感謝你的帖子,我以某種方式意識到我使用錯誤的目錄'/ usr/bin /'而不是'/ usr/local/bin /'。這解決了安裝中的問題,但我無法走得更遠。我會更新我的問題。 –

+1

我可以看到的唯一一件事情是,我做了與上面不同的事情,'sudo make'安裝docx2txt。我現在在OSX上完美地分析.dotx文件,謝謝! ('binary = true'選項不需要,btw,所以.git/config可以像這樣在命令行中設置:'git config diff.wordx.textconv docx2txt',其中docx2txt在上面給出並放置在$ PATH如果它不是,並且它看不到docx2txt.pl,腳本將不會運行,並且您將回退到通常的「二進制文件a/blah b/blah不同」) – klang

回答

3

感謝巴生,我做到了。現在我可以在Mac OS X(10.9)的Terminal.app中對diff文件進行比較。但是這個不能與SourceTree GUI無縫協作。以下基本上與巴生的相同,但稍作更正。

下載,然後從http://docx2txt.sourceforge.net/

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轉換器然後做一個小包裝腳本,使docx2txt輸出到標準輸出

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

的Git的(字)屬性.DOCX版本比較存儲庫中

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

使用.git/info/attributes如果該設置不應該與項目一起提交。

Git的屬性(字).DOC版本比較

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