2017-02-10 4 views
1

В мерзавца я могу запустить команду:.Как получить список удаленных филиалов, которые содержат фиксации в libgit2sharp

git branch -r --contains '#commit-hash#' 

Какой список удаленных филиалов, которые имеют коммита Я заинтересован в

I прочитали документы на libgit2sharp wiki, однако пример там локальных ветвей?

Как я могу сделать то же самое в libgit2sharp?

ответ

2

После просмотра документации libgit2wiki, вы можете изменить их пример кода, чтобы выглядеть следующим образом:

using (var repo = new Repository("path/to/your/repo")) 
{ 
    const string commitSha = "5b5b025afb0b4c913b4c338a42934a3863bf3644"; 
    foreach(Branch b in ListBranchesContainingCommit(repo, commitSha)) 
    { 
     Console.WriteLine(b.Name); 
    } 
} 

private IEnumerable<Branch> ListBranchesContainingCommit(Repository repo, string commitSha) 
{ 
    var commit = repo.Lookup<Commit>(commitSha);var commit = repo.Lookup<Commit>(commitSha); 

    IEnumerable<Reference> headsContainingTheCommit = repo.Refs.ReachableFrom(repo.Refs, new[] {commit}); 
    return headsContainingTheCommit.Select(branchRef => repo.Branches[branchRef.CanonicalName]).ToList(); 
} 
+0

Отлично! Это работает - Спасибо за код –

+0

Добро пожаловать :-) – Slartibartfast

Смежные вопросы