2 つのドキュメントを比較する統合差分を計算したいと考えています。(差分は電子メールで送信されます。ウィキペディアによると、統一された差分が最適なプレーン テキスト形式の差分です。)
Team Foundation にはコマンド ライン インターフェイスがあります。
> tf diff /format:unified alice.txt bob.txt
- Alice started to her feet,
+ Bob started to her feet,
( https://gist.github.com/hickford/5656513のサンプル ファイル)
素晴らしいですが、通常の理由から、外部プロセスを開始するよりもライブラリを使用したいと思います。
MSDN を検索すると、Team Foundation に .NET ライブラリがあることがわかりましたMicrosoft.TeamFoundation.VersionControl
。ただし、ドキュメントには、差分を計算する例はありません。
Team Foundation ライブラリで統合差分を計算するにはどうすればよいですか?
編集: この方法を試しました
Difference.DiffItems
が、うまくいきませんでした。ファイルdiff.txt
は空のままでした。
var before = @"c:\alice.txt";
var after = @"c:\bob.txt";
var path = @"c:\diff.txt";
using (var w = new StreamWriter(path))
{
var options = new DiffOptions();
options.OutputType = DiffOutputType.Unified;
options.StreamWriter = w;
Difference.DiffFiles(
before, FileType.Detect(before, null),
after, FileType.Detect(after, null),
options );
}
Console.WriteLine(File.ReadAllText(path));