Как получить файлы, которые были изменены, добавлены или изменены в каталоге хранилища

Можно ли получить все измененные / добавленные / удаленные файлы из хранилища, а затем подготовить эти файлы? Если да, то как?

Я делал что-то вроде этого:

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

Я думаю, что это все, что вам нужно.

Другие вопросы по тегам