2013-10-03 211 views
1

我想通過使用NGIT(它是JGit的一個端口)在磁盤上刪除克隆的回購。刪除克隆的回購

我以前做過這個本地克隆遠程回購:

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

我現在想刪除包含克隆回購本地目錄。

我剛收到,當它到達.git\objects\pack\*.idx文件時收到了許可例外。也許這只是在Windows Azure上運行它的副作用。

是否有NGit命令我可以通過使用NGIT中的功能刪除.git目錄及其所有內容?

回答

1

請確保您沒有任何現有的git/NGit進程,您在這些資源上保留句柄(.git\objects\pack\*.idx文件)。

不殺這些過程通常是those "rm: cannot unlink ..." error messages的原因。

+0

關於如何從代碼中殺死相關進程的任何建議?我在單元測試中做了類似於p.cambell的事情,並且在成功克隆它之後需要刪除回購。我試過[var repository = _git.GetRepository(); repository.Close(); repository.ObjectDatabase.Close(); repository = null; ],然後嘗試刪除物理文件,但仍收到相同的消息。 – Appetere