微妙な違いがあるファイルのペアがたくさんあります。ソース管理には Subversion を使用しており、Windows 用の TortoiseSVN に付属している Merge/Diff ユーティリティが気に入っています。そして、このユーティリティを使用して、2 つのファイルを手動で比較/マージすることができます。私の質問は次のとおりです。このユーティリティと同じように、プログラムで 2 つのファイルをマージするにはどうすればよいですか (競合しているファイルを無視してフラグを立てることができますか)?
4 に答える
2
これが役立つかもしれません: TortoiseMerge の自動化
于 2010-01-11T19:20:31.847 に答える
2
この質問で提案されているような、確立されたマージ アルゴリズムをサポートする .NET ライブラリの 1 つを使用することをお勧めします。
品質についてはわかりませんが、これにも出くわしました: http://razor.occams.info/code/diff/
于 2010-01-11T19:23:43.823 に答える
0
私が知っているいくつかのオプション:
- Visual StudioのANKHソース管理プロバイダーで使用されるSharp SVN 。ただし、リポジトリを取得するのは遅い
- DotSVN - 「Subversion の .Net ポート」
- サブバージョンから離れても問題ない場合は、Google のDiff Match Patchを試すことができます。
2 つの subversion プロジェクトがマージを実装しているかどうかはわかりませんが、サーバー コマンドだと思います。差分はありません。Google のものをお勧めします。
カメを自動化したいだけなら、私は的外れかもしれません。
于 2010-01-11T19:20:33.170 に答える
0
人間の介入なしに、競合のない 2 つのファイルをマージすることは、(Subversion のように) 両方のファイルの前のバージョンを持っているなど、変更が実際に何であるかを簡単に判断できない限り、おそらく良い考えではありません。
たとえば、次の 2 つのファイルが与えられた場合、正しい行動方針は何ですか? (# 列は行番号です。ギャップは行が欠落していることを意味します)
--- File #1 ------------------------ --- File #2 ------------------------
1 This is the first line 1 This is the first line
2 This is the second line 2 This is the second line
3 This is the third line
4 This is the fourth line 3 This is the fourth line
4 This is the fifth line
5 This is the sixth line 5 This is the sixth line
それで、ここで正しい結果は何ですか?
于 2010-01-11T19:26:40.847 に答える