2013-02-05 2 views
0

저는 약간의 위키 정보를 통해 읽고 찾을 수 있었지만 관련성이 있다고 생각되는 테스트를 살펴 보았지만 문제는 계속 발생하고 있습니다. 몇 가지 작업 솔루션을 제공합니다.원격 저장소에 대한 작업 수행에 대한 약간의 도움이 필요합니다.

대개 저는 작업 저장소/로컬 커밋보다 먼저 서버에 푸시 된 커밋을 나열하는 방법을 찾고 있습니다. 나는 Fetch와 FetchHeads를 사용해 보았지만, Network 클래스에 대한 모든 문서를 살펴보면 이해할 수있는 것을 얻지 못했을 것입니다. 이상적으로, 내가 같은보고에 관심이있을 것 : 그런 다음

IQueriableCommitLog Repository.Network.GetCommitsAhead 

또는

IQueriableCommitLog Repository.Remote.GetCommitsAhead 

을, 당신처럼 결과를 사용는 것에서 : 아마 또한

IQueriableCommitLog Repository.Commits 

, 방법 Commit.UpdateTo()와 같이 원격 커밋을 수행합니다.

내가 찾고있는 것을 너무 멀리 떨어져 있습니까? 이때와 같은 행동을 수행 할 수 있습니까? libgit2에서 지원됩니까?

답변

1

대개 나는 작업 저장소/로컬 커밋보다 먼저 서버에 푸시 된 커밋을 나열하는 방법을 찾고 있습니다.

Branch은 로컬 또는 원격 중 하나입니다. 다른 로컬을 추적하는 로컬 BranchTrackedBranch 속성을 제공합니다. TrackedBranch하지 않은 널 속성이 로컬 브랜치에 대해 수행되었고 추적 한 공지되지

  • 커밋 가진 로컬 분기 고려

    . 추적 지점에 존재하고 로컬 하나

repo.Commits.QueryBy(new Filter { Since = TrackedBranch, Until = Tip })

+0

에서 알 수없는

repo.Commits.QueryBy(new Filter { Since = branch.Tip, Until = branch.TrackedBranch });

  • 커밋 내가 첫 번째 코드 블록이 있다고 가정하는 수정 있습니까 서버에 알려지지 않은 로컬 커밋에 대해서는 서버에 알려져 있지만 작업 복사본에는 알려지지 않은 블록을 두 번째로 차단합니까? –

+0

예. 그러나이 방법은 로컬 저장소가 원격 서버의 상태를 알고있는 것에 반하는 것입니다. 업데이트 된 정보가 필요하다면 먼저'Fetch()'를 먼저 실행하십시오. – nulltoken

+0

도움을 주셔서 감사합니다. 그러나 TrackedBranch는 항상 null을보고합니다. '= REPO 새로운 저장소 (Directory.GetCurrentDirectory());'' repo.Fetch ("원점");'' 분기 = repo.Head; 실제로' –