LibGit2sharp를 사용하여 Commit History Graph를 구현하는 방법?

안녕하세요. :smile:

libgit2sharp 라이브러리를 Commit History Graph를 구현하고 있는데요.

(참고 이미지)

image

(또는 터미널에서 graph 보기)

git log --oneline --graph --decorate --all

그리고 아래는 제가 작업중인 화면입니다.

우선 커밋 정보는 libgit2sharp 라이브러리를 통해 쉽게 가져올 수 있지만 Graph를 그리기 위한 정보를 가져오지 못했습니다.


커밋정보를 구하는 코드는 간단했습니다.

// libgit2sharp 라이브러리

string path = "c:\github\git-gui-app";
var repo = Repository(path);
var commits = repo.Commits();
var list = new List<CommitItem>();
foreach (var item in commits)
{
    var commitItem = new CommitItem();
    commitItem.Name = item.Message;
    commitItem.Sha = item.Sha;
    commitItem.ParentSha = item.Parents.FirstOrDefault().Sha;
    list.Add(commitItem);
}

하지만 그래프 부분은 토폴리지 위상정렬 알고리즘을 이용해서 계산하는 방식이라고 하는데 갈피를 못잡고 있어 질문 올리게 되었습니다.

혹시 비슷한 사례나 토폴리지 위상정렬 등의 조언 부탁 드립니다!

(소스코드도 정리해서 샘플 올려보겠습니다!)

관련된 기술적인 경험이 없습니다.

다음의 오픈소스가 원하는 작업에 도움이 될 수 있나요?

좋아요 1

이 질문은 libgit2sharp 쪽 Issue에 문의하는 것이 빠를 듯 합니다.

좋아요 1

@dimohy 저도 관련해서 정말 많이 찾아봤었는데, 제가 필요한 부분 맞습니다!! 감사합니다. :smile:

@level120 조언 감사드립니다. :smile:

그래서 libgit2sharp쪽에도 문의 했고 혹시 필요 궁금하신 분들 위해 링크도 남겨두겠습니다! 여기