2013-10-03 2 views
1

Jit의 포트 인 NGit을 사용하여 디스크에 복제 된 저장소를 제거하고 싶습니다. 내가 이전에 로컬로 원격의 repo를 복제하는 이런 짓을 한복제 된 저장소 제거

:

System.IO.Directory.CreateDirectory(someDir); 
var clone = Git.CloneRepository().SetDirectory(someDir).SetURI(someRepoUri); 
Git Repo = clone.Call(); 

내가 REPO를 복제 것을 포함하는 로컬 디렉토리를 삭제하는 지금 싶습니다.

.git\objects\pack\*.idx 개의 파일에 도달했을 때 System.IO.Directory.Delete()을 호출 할 때 허가 예외가 발생했습니다. 아마도 이것은 Windows Azure에서이를 실행하는 것의 부작용 일 것입니다.

NGit 내의 기능을 사용하여 .git 디렉터리와 모든 내용을 제거 할 수있는 NGit 명령이 있습니까?

답변

1

해당 자원 (.git\objects\pack\*.idx 개 파일)을 처리하는 기존의 자식/NGit 프로세스가 없는지 확인하십시오.

이러한 프로세스를 죽이지 않으면 일반적으로 those "rm: cannot unlink ..." error messages이됩니다.

+0

코드에서 관련 프로세스를 삭제하는 방법에 대한 제안 사항이 있으십니까? 단위 테스트에서 p.cambell과 비슷한 작업을하고 있으며 복제를 성공적으로 마친 후 repo를 삭제해야합니다. 나는 시도했다 [var repository = _git.GetRepository(); repository.Close(); repository.ObjectDatabase.Close(); 저장소 = null; ]를 사용하여 실제 파일을 삭제하려고 시도하지만 여전히 동일한 메시지가 표시됩니다. – Appetere