Comment utiliser la bibliothèque de Team Foundation pour calculer les différences unifiées?

Je veux calculer un diff unifié comparant deux documents. (Le diff est d’aller dans un email, et Wikipedia dit qu’un diff est le meilleur format de diff en texte brut.)

Team Foundation a une interface en ligne de commande pour le faire

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

(Exemples de fichiers sur https://gist.github.com/hickford/5656513 )

Génial, mais je préférerais utiliser une bibliothèque plutôt que de lancer un processus externe, pour les raisons habituelles.

En recherchant MSDN, j’ai trouvé que Team Foundation avait une bibliothèque .NET Microsoft.TeamFoundation.VersionControl . Cependant, la documentation ne donnait aucun exemple de calcul d’un diff.

Comment calculer un diff unifié avec la bibliothèque Team Foundation?


Edit: J’ai essayé la méthode Difference.DiffItems mais cela n’a pas fonctionné – le fichier diff.txt est resté vide.

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

S’il vous plaît essayer DiffSegment

  var diff = Difference.DiffFiles( before, FileType.Detect(before, null), after, FileType.Detect(after, null), options); while (diff != null){ //DO What you like with the diff(s) diff = diff.Next; } 

Je suppose que ce n’est pas possible 🙁 Vous ne pouvez le faire qu’en ligne de commande avec tf.exe .