1

のインスタンスが与えられた場合、それが存在するLibGit2Sharp.Commitものをどのように解決しますかBranch

4

1 に答える 1

2

実際、このコミットは多くのBranches に存在する可能性があります。sTagまたはStash.

特定のコミットにつながるすべての参照を知りたい場合、.ReachableFrom()メソッドはそのニーズにぴったり合うかもしれません:

IEnumerable<Reference> refs = repo.Refs.ReachableFrom(new[] { my_commit });

検索対象の参照をローカル ヘッドのみに制限したい場合、このメソッドのオーバーロードは、操作する参照のサブセットを受け入れます。

IEnumerable<Reference> localHeadRefs = repo.Refs.ReachableFrom(
    repo.Refs.Where(r => r.IsLocalBranch()),
    new[] { my_commit });

次に、es のリストを取得するには、次のBranchようにします。

IEnumerable<Branch> branches = localHeadRefs
    .Select(reference => repo.Branches[reference.CanonicalName]);
于 2013-08-17T09:54:20.473 に答える