删除 git 个存储库
Deletion of git repository
考虑以下程序:
var path = Path.Combine(
Path.GetTempPath(),
Path.GetFileNameWithoutExtension(Path.GetRandomFileName()));
Directory.CreateDirectory(path);
var testFile = Path.Combine(path, "test.txt");
File.WriteAllText(testFile, "Test file");
var source = Repository.Init(path);
using (var repository = new Repository(source))
{
repository.Index.Add("test.txt");
}
Directory.Delete(path, true);
删除存储库文件夹时,我得到一个 UnauthorizedAccessException
- 拒绝访问内部 git 文件之一。为了删除文件夹,还有什么我应该处理的吗?
Is there anything else I should dispose of in order to delete the folder?
你的配置模式很好。提到的问题有不同的来源。
如 documentation 中所述,当存在权限相关问题时会引发 UnauthorizedAccessException
。
事实上,Libgit2Sharp 在这方面的行为与 git 相似,并将 .git/objects
层次结构下的文件标记为只读,因此在尝试删除它们时抛出异常。
为了解决这个问题,并在我们的测试 运行 时简化清理阶段,我们开发了一个辅助方法(即 DirectoryHelper.DeleteDirectory()
),它递归地取消设置读取的那些-仅属性并删除文件和目录。
看到source code是否愿意重用
考虑以下程序:
var path = Path.Combine(
Path.GetTempPath(),
Path.GetFileNameWithoutExtension(Path.GetRandomFileName()));
Directory.CreateDirectory(path);
var testFile = Path.Combine(path, "test.txt");
File.WriteAllText(testFile, "Test file");
var source = Repository.Init(path);
using (var repository = new Repository(source))
{
repository.Index.Add("test.txt");
}
Directory.Delete(path, true);
删除存储库文件夹时,我得到一个 UnauthorizedAccessException
- 拒绝访问内部 git 文件之一。为了删除文件夹,还有什么我应该处理的吗?
Is there anything else I should dispose of in order to delete the folder?
你的配置模式很好。提到的问题有不同的来源。
如 documentation 中所述,当存在权限相关问题时会引发 UnauthorizedAccessException
。
事实上,Libgit2Sharp 在这方面的行为与 git 相似,并将 .git/objects
层次结构下的文件标记为只读,因此在尝试删除它们时抛出异常。
为了解决这个问题,并在我们的测试 运行 时简化清理阶段,我们开发了一个辅助方法(即 DirectoryHelper.DeleteDirectory()
),它递归地取消设置读取的那些-仅属性并删除文件和目录。
看到source code是否愿意重用