Chcę obliczyć unified diff porównując dwa dokumenty. (The diff jest iść w wiadomości e-mail, a Wikipedia mówi unified diff jest najlepszy format diff zwykły tekst).Jak korzystać z biblioteki Team Foundation do obliczania ujednoliconego pliku różnicowego?
Team Foundation ma command line interface zrobić
> tf diff /format:unified alice.txt bob.txt
- Alice started to her feet,
+ Bob started to her feet,
(przykład pliki w https://gist.github.com/hickford/5656513)
Świetne, ale wolę korzystać z biblioteki niż z zewnętrznego procesu, z typowych powodów.
Po wyszukaniu MSDN, znalazłem Team Foundation ma bibliotekę .NET Microsoft.TeamFoundation.VersionControl
. Jednak w dokumentacji nie podano żadnych przykładów obliczania różnic.
Jak obliczyć ujednoliconą różnicę przy użyciu biblioteki Team Foundation?
Edit: Próbowałem metody Difference.DiffItems
ale to nie działa, plik diff.txt
pozostało puste.
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));
Znaleziono ktoś kilka lat temu z tym samym problemem. http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/828ad9b0-def5-461c-bf9e-180d57f167a8 –