Как получить файлы, которые были изменены, добавлены или изменены в каталоге хранилища
Можно ли получить все измененные / добавленные / удаленные файлы из хранилища, а затем подготовить эти файлы? Если да, то как?
Я делал что-то вроде этого:
foreach (string file in Directory.GetFiles("dir/repo", "*", SearchOption.AllDirectories))
{
repo.Stage(file);
}
Однако, это не удовлетворяет меня, потому что я проверяю все неотслеживаемые файлы. Но я хочу поставить все измененные / добавленные / удаленные файлы.
2 ответа
Можно ли получить все измененные / добавленные / удаленные файлы из хранилища, а затем подготовить эти файлы? Если да, то как?
"Используйте подстановочный знак, Люк!";-)
repo.Stage("*")
будет подражать git add --all
(Из документации git: "Обновляйте индекс не только там, где в рабочем дереве есть соответствие файла, но также и там, где в индексе уже есть запись. Это добавляет, изменяет и удаляет записи индекса, чтобы они соответствовали рабочему дереву.")
См. CanMimicGitAddAll() тест из IndexFixture.cs
для некоторых дополнительных идей.
Вы можете использовать инструменты командной строки git для получения списков измененных / добавленных / удаленных файлов. Просто Google это, и вы найдете множество ресурсов.
Посмотрите, как запустить инструмент командной строки и получить вывод в виде строки:
Как: выполнить командную строку в C#, получить результаты STD OUT
Я думаю, что это все, что вам нужно.