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

안녕하세요. :smile:

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

(참고 이미지)

image

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

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

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

image

우선 커밋 정보는 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 Like

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

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

1 Like

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

2 Likes

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

1 Like

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

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

1 Like