Мне нужно получить полную разницу между мастером и разработкой для определенного каталога, чтобы я мог проанализировать его и создать легко читаемый журнал изменений.
Я хочу скопировать "git diff --unified = 0 master directory /> file.diff" с libgit2sharp. Мне удается получить список всех измененных / добавленных / удаленных файлов, но я не знаю, как получить содержимое diff для каждого файла.
using (var repo = new Repository("C:\\dev\\myProject"))
{
var changes = repo.Diff.Compare<TreeChanges>(repo.Branches["master"].TrackedBranch.Tip.Tree,
DiffTargets.WorkingDirectory);
foreach (var changed in changes.Modified)
{
if (changed.Path.Contains("directory"))
{
Console.WriteLine("modified:" + changed.Path);
}
}
}
Мне бы хотелось иметь что-то похожее на команду git, чтобы я мог ее проанализировать. Другим решением было бы использовать «Process.Start», но, возможно, libgit2sharp - более чистый подход. У меня нет .Net Core 2.0 для PowerShell.