Получить количество коммитов подпапки в репо

Я использую NGit с C#, чтобы получить данные из нашего репо

Я пытаюсь выяснить, как получить счет фиксации вложенной папки в репо из текущей ветви.

Что-то вроде (но с поддержкой подпапок)

git rev-list --count HEAD

редактировать: это работает, но кажется, что должен быть лучший и быстрый способ. для большого репо это займет время, чтобы завершить

var git = Git.Open(@"repoPath");
var allCommits = git.Log().Call().OrderBy(c => c.CommitTime);

var commit = git.Log().AddPath("SubPath").Call().OrderByDescending(c => c.CommitTime).First();

var index = allCommits
    .Select((c, i) => new {Commit = c, Index = i})
    .First(c => c.Commit.Id.Name == commit.Id.Name)
    .Index;

1 ответ

Я действительно не знаю NGit, но не могли бы вы просто посчитать commits прямо вместо allCommits?

var commits = git.Log().AddPath("SubPath").Call().OrderByDescending(c => c.CommitTime);
var index = commits
.Select((c, i) => new {Commit = c, Index = i})
.Index;
Другие вопросы по тегам