2017-11-16 6 views
0

내 winforms 프로젝트에서 git을 사용하는 프로젝트를 추적하려고합니다. 전체 저장소와 전체 기록을 복제하고 싶지 않고 최신 버전 만 원한다면 원격 프로젝트에서 새 버전으로 업데이트 할 수 있기를 원합니다.LibGit2Sharp 원격 저장소의 마지막 버전 얻기

내가

co.CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials { Username = userName, Password = passWord }; 

     Repository.Clone("Git/repo", @tmpRepoFolder, co); 
을 시도하지만,이 전체 저장소의 사본 (큰 파일 크기)를 생성하고 추적 변화가 더 큰 디스크 공간을 만들어 (파일 100MB의 지금 2기가바이트 이상 소요) .

나는 기록이 필요 없으며 태그가 필요하지 않습니다. 난 그냥 최신 버전 싶어요. 기본적으로

+1

가능한 중복 https://stackoverflow.com/questions/24037499/work-with-libgit2sharp -from-retrieve-only-the-latest-of-specific-branch) – fruggiero

답변

0

당신은 당신이 프로세스를 시작할 수있는 대안으로 그

을위한 오픈 issue이 실제로 지원되지 않는 얕은 클론 (망할 놈의 클론 --depth 명령에 해당)을 할 git 애플리케이션을 사용하여 원하는 것을하십시오. 여기

예 :

using(System.Diagnostics.Process p = new Process()) 
{ 
    p.StartInfo = new ProcessStartInfo() 
    { 
     RedirectStandardInput = true, 
     RedirectStandardOutput = true, 
     UseShellExecute = false, 
     FileName = @"C:\Program Files\Git\bin\git.exe", 
     Arguments = "clone http://username:[email protected]/to/repo.git" + " --depth 1"     
    }; 

    p.Start(); 
    string output = p.StandardOutput.ReadToEnd(); 
    p.WaitForExit(); 
} 
([특정 지점의 최신 버전을 검색 할 수 libgit2sharp과 협력]의
+0

클론을 수행하는 다른 옵션이 있는지 알 수 없습니다. #depth는 aC# 코드로 하드 ​​코딩되어 있습니다. 자식 프로세스를 만들거나 다른 옵션을 만들 수 있습니다. 어떤 아이디어라도 감사 할 것입니다. – sahar04

+0

@ sahar04 예제를 추가했습니다. – fruggiero