Я хочу рассчитать унифицированный diff, сравнивающий два документа. (Разница заключается в том, чтобы идти по электронной почте, а Wikipedia говорит, что унифицированный diff - это лучший формат текста с открытым текстом.)
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
. Однако в документации не приводились примеры расчета diff.
Как рассчитать единый diff с библиотекой 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));