OpenOfficeまたはMicrosoft Wordファイルの「意味のある」差分/マージ/分岐のためのGitまたはHgプラグインを見つけた人はいますか?.
.docファイルを「チェックイン」できることはわかっていますが、GitとHgはどちらもバイナリBLOBとして扱います。ファイルのテキストに対して通常のリビジョンベースの操作のすべて(または少なくとも多く)を実行できるようにしたいと考えています。
そして、はい、私はラテックスを使用するか、RTF間でファイルをやり取りする必要があることを知っています。私は技術者と「管理者」の間のコラボレーションを管理しようとしているので、より「ネイティブな」ソリューションを探しています。
これは、Biostarに関する私の質問に関連しています: http://biostar.stackexchange.com/questions/1749/writing-collaboration-with-source-control-and-Microsoft-Word
ありがとう。
どうですか:
外部XML比較ツールを使用して比較します。例えば:
$ git difftool -t xmldiff c3d293 498571
1行に1つの要素を含むようにXMLファイルを変換すると、チェックインプロセスが効率的に実行され、外部XML差分ツールがすばやく処理できるようになります。
参照:
私が思いついた素晴らしいトリックは、Open OfficeファイルやPPTなどでも機能します。
http://xcafebabe.blogspot.hu/2012/09/sexy-comparison-of-Word-documents-with.html
結果を示すスクリーンショットは次のとおりです。
MS Windowsを使用している場合は、 TortoiseGit を使用します。私はこの苦痛な経験とTGitを経験しなければなりませんでした。その他のポイント:
Microsoft Word(MS Word)には、欠陥がある場合でもまともなマージツールがあります。私の知る限り、それは双方向のマージのみを行うことができます(i.e.:X0 + dX = X1
)、3-wayまたは2-parentマージではなく、バージョン管理でより一般的です(i.e.:X0 + dX1 + dX2 = X1
)。あなたはこのツールを使用してマージの競合を解決できますが、いくつかのレッグワークの権利があります-各ブランチをチェックアウトし、HEAD =追跡されていないバージョンなど.
X0 = *.BASE.docx,
X0 + dX1 = *.LOCAL.docx and
X0 + dX2 = *.REMOTE.docx
幸いなことに、これはTGit(およびTSVN)が行うこととまったく同じです。残念ながら、rebase
は避けてください。複数の変更を続けて再生する必要がある場合、大変な作業になる可能性がありますが、短いドキュメントの場合はmerge
で十分です。
JudoWillの質問への回答-Workshareはおそらく弁護士が使用する主要なツールです。
ここに複数の場所の指示をまとめました: http://bit.ly/17LaxVY
# 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 ci -m "Initial commit"
# change something in my_file.docx
git wdiff my_file.docx
# awesome!
OSXでうまく動作します
法律事務所には、これを行うための非常に堅牢なシステムがあります。ドキュメントの改訂履歴を信頼せず(外部から提供されているため)、代わりに独自の比較を行い、デルタを提供できます。それが本当に必要なものである場合は、ラッパーをgitまたはMercurialに入れるよりも購入する方がよいでしょう。
悲観論者のように聞こえて申し訳ありませんが、技術者は、オフィスの人々がgitまたはMercurialをあらゆるレベルの満足度で使用するよりも、高額な商用ツールを(不平ながら)使用する可能性が高くなります。
Git 1.6.1以降に textconv 機能が追加され、比較前に任意のコマンドを使用してファイルをテキストに変換できるようになりました。
これも確認してください: https://Gist.github.com/17twenty/4985374
Svn(gitまたはhgではなく、ゲートウェイを使用できます)を使用すると、Oooが非圧縮XMLファイルを処理するための拡張機能があります。同様の質問については my answer を参照してください。ところで、もしeverあなたがプラグインコードを見てそれをhg-awaresvnの代わりに、教えてください! ;-)