Получить все коммиты для данного файла с помощью LibGit2Sharp - PullRequest
0 голосов
/ 15 октября 2019

Из локального репозитория я хочу получить все коммиты, которые либо создали, либо изменили определенный файл. До сих пор наше приложение обрабатывало это, помещая имя файла в сообщение фиксации, а затем просматривая сообщения фиксации с этим именем при создании истории. Я хотел бы иметь более чистое решение, которое не включает сообщения о фиксации, если это возможно.

Это то, что я пробовал до сих пор:

private List<Commit> GetAllCommitsForFile(string repositoryPath, string filename)
{
    using (var repo = new Repository(repositoryPath))
    {
        List<LogEntry> logs = repo.Commits.QueryBy(Path.Combine(RepositoryPath, filename)).ToList(); 
        List<Commit> commits = new List<Commit>();

        foreach(LogEntry log in logs)
        {
            commits.Add(log.Commit);
        }

        return commits;
    }
}

Описание QueryBy-методаговорит:

Возвращает список коммитов репозитория, представляющих историю файла после переименований.

Для меня это звучит как то, что я хочу. Тем не менее, когда я передаю только имя файла, я получаю KeyNotFoundException, и когда я объединяю его с путем к хранилищу, я получаю пустой список.

...