2017-05-20 17 views
1

LibGit2Sharp를 사용하여 가져 오기, 가져 오기, 밀어 넣기 등을 성공적으로 수행 할 수 있지만 변경 후 추가 된 파일 등을 나열 할 수 있기를 바랍니다. 가져 오는 중. https://github.com/libgit2/libgit2sharp/wiki/git-fetch을 사용하고 있으며 오류나 예외가 발생하지 않으며 logMessage는 빈 문자열입니다.LibGit2Sharp를 사용하여 가져 오기에서 원격 변경 목록을 얻는 방법

Visual Studio에서 가져 오기를 수행 할 때 변경 사항 목록을 표시하고 싶습니다.

어떻게 LibGit2Sharp를 사용하면이 작업을 수행 할 수 있습니까?

편집 : 나는 LibGit2Sharp 위키와 LibGit2Sharp Hitchhiker 's Git 가이드를 읽었습니다. 내가 제공 한 결과를 검토하기 위해 사용 가능한 명령 중 일부를 시도했지만 이와 동등한 git 명령이 무엇인지 확실하지 않습니다. 어떤 명령이이 정보를 제공하는지 알고 이해하는 것이 도움이되며 Git에 익숙하지만 LibGit2Sharp에 익숙하지 않은 경우 감사 할 것입니다. 이 완료 인출 후에는 가져온 나열 할 수 있습니다

+0

나는 downvote의 원인이라고 가정하고 설명에 추가했습니다. – Daniel

답변

2

당신은 (일반적으로 origin/yourbranch 상류 원격 추적 지점)

에서 병합 된 지점을 지정 @{u}

git log [email protected]{u} 

으로 주어진 브랜치의 커밋

LibGitSharp에서 이것은 LibGit2Sharp/BranchUpdater.cs#UpstreamBranch 참조 (업스트림 지점)

이렇게하면 현재 지점 HEAD와 "사이의 커밋을 나열 할 수 있습니다."과 같은 비트가 issue 1161과 비슷하지만 푸시 된 것을 나열하는 문제가있었습니다. 여기서 로그 매개 변수를 반전합시다.

var trackingBranch = repo.Head.TrackedBranch; 
var log = repo.Commits.QueryBy(new CommitFilter 
      { IncludeReachableFrom = trackingBranch.Tip.Id, ExcludeReachableFrom = repo.Head.Tip.Id }); 

var count = log.Count();//Counts the number of log entries 

//iterate the commits that represent the difference between your last 
//push to the remote branch and latest commits 
foreach (var commit in log) 
{ 
    Console.WriteLine(commit.Message); 
} 
+0

감사합니다. CommitFilter에서 IncludeReachableFrom 및 ExcludeReachableFrom을 사용하여 작업했습니다. – Daniel

+0

@Daniel 우수! 방금 편집을 승인했습니다. – VonC