Voglio calcolare un unified diff confrontando due documenti. (Il diff è quello di andare in una e-mail, e Wikipedia dice diff unificato è il miglior formato diff testo normale.)Come utilizzare la libreria di Team Foundation per calcolare la differenza unificata?
Team Foundation ha un command line interface fare che
> tf diff /format:unified alice.txt bob.txt
- Alice started to her feet,
+ Bob started to her feet,
(File di esempio a https://gist.github.com/hickford/5656513)
Brillante, ma preferirei usare una libreria piuttosto che avviare un processo esterno, per le solite ragioni.
Ricerca in MSDN, ho trovato che Team Foundation ha una libreria .NET Microsoft.TeamFoundation.VersionControl
. Tuttavia, la documentazione non ha fornito esempi di calcolo di diff.
Come si calcola un diff unificato con la libreria di Team Foundation?
Edit: ho provato il metodo Difference.DiffItems
, ma non ha funzionato: il file diff.txt
è stato lasciato vuoto.
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));
qualcuno ha trovato altro di qualche anno fa con lo stesso problema. http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/828ad9b0-def5-461c-bf9e-180d57f167a8 –