私は最近git
とhg
をいじってみましたが、突然、この種のことがドキュメントに適していることに気付きました。
DOCXで編集してPDFとしてエクスポートするドキュメントがあります。私はgit
とhg
の両方を使用してバージョン管理を試みましたが、hg
でバイナリのみを追跡することになり、差分は意味がありません。 git
を使用すると、DOCXを有意に比較できます(まだ試していないPDFはまだ試していません)正しく実行するよりも良い方法があるかどうか疑問に思っていました(理想的には、Wordをdiffに任せる必要がないことが最善の解決策です。)
-アシッシュガンジー
ここには2つの異なる概念があります。1つは「バージョン管理システムがファイルの内容についてインテリジェントな判断を下せるか」です。 -リビジョン間のデルタ情報のみを保存できるようにします(ファイルの個々の部分に責任を割り当てるなどの処理を行います)。
もう1つは、「バージョン管理システムにあるファイルの種類に役立つファイル比較ツールがありますか」です。バージョン管理システムには、専用の代替機能よりも劣るファイル比較ツールが付属する傾向があります。しかし、ほとんどの場合、すべてのファイルタイプまたは特定のファイルタイプのどちらでも、より優れたdiffプログラムにリンクできます。
したがって、一般的な比較ツールとしてBeyond Compareを使用し、専用のWordドキュメント比較ツールとしてWordを使用するのが一般的です。
バージョン管理システムが異なれば、「バイナリ」を処理する上での優れた人々の認識度も異なりますが、それは、ファイル比較と同様に、巨大なファイルの処理と排他ロックの提供と同じくらいの頻度で行われます。
http://tortoisehg.bitbucket.io/ には、WordとExcelの差分を統合するdocdiffと呼ばれるプラグインが含まれています。
Beyond Compareをhgの外部diffツールとして使用できます。ユーザーMercurial.iniを次のように追加/変更します。
[extdiff]
cmd.vdiff = c:/path/to/BCompare.exe
次に、Beyond Compare file viewer rule for docxを取得します。
これで、Beyond Compareで2つのバージョンのdocxを比較できるようになります。
Docxの場合のみ、ここに複数の場所の指示をまとめました: https://Gist.github.com/nachocab/642989
# 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でうまく動作します
たまたまMacを使用している場合は、Microsoft Wordを使用して変更を追跡し、Wordが読み書きできるすべてのファイルタイプ間の競合を表示できるgitマージドライバーを作成しました。
http://github.com/jasmas/wordMerge
私が書いたドライバーがAppleScriptを使用するのは、主にこのタスクを実行するためです。
プロジェクトにvbscriptバージョンを追加するのは良いことですが、現時点ではテスト用のWindows環境がありません。基本的なスクリプトの知識がある人なら誰でも、私がやっていることを見て、vbscript、powershell、またはWindowsの何でも複製できるはずです。