2013-10-03 202 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