Wie verwende ich die Team Foundation-Bibliothek, um Unified Diff zu berechnen?

Ich möchte a berechneneinheitlich diff zwei Dokumente vergleichen. (Der Unterschied besteht darin, eine E-Mail zu verschicken, und Wikipedia sagt, Unified Diff sei das beste Nur-Text-Diff-Format.)

Team Foundation hat eineBefehlszeilenschnittstelle TU das

> tf diff /format:unified alice.txt bob.txt
- Alice started to her feet,
+ Bob started to her feet,

(Beispieldateien beihttps://gist.github.com/hickford/5656513)

Genial, aber ich würde aus den üblichen Gründen lieber eine Bibliothek verwenden als einen externen Prozess zu starten.

Bei der Suche nach MSDN stellte ich fest, dass Team Foundation über eine .NET-Bibliothek verfügtMicrosoft.TeamFoundation.VersionControl. Die Dokumentation enthielt jedoch keine Beispiele für die Berechnung eines Unterschieds.

Wie berechne ich einen einheitlichen Diff mit der Team Foundation-Bibliothek?

Edit: Ich habe die Methode ausprobiertDifference.DiffItems aber es hat nicht funktioniert - die Dateidiff.txt wurde leer gelassen.

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));

Antworten auf die Frage(2)

Ihre Antwort auf die Frage