我正在尝试使用 Repository.Clone 克隆一个 git 存储库。
这是用于克隆命令的示例代码。
public string Clone(string remoteRepository, string path, string username, string password)
{
string myPassword;
CloneOptions options = new CloneOptions();
options.CredentialsProvider = (url, user, cred) =>
{
return new UsernamePasswordCredentials {Username = username, Password = password};
};
return Repository.Clone(remoteRepository, path, options);
}
该代码在某些存储库上运行良好,但对于其他存储库,我得到了异常
这是我得到的例外
{"无法统计文件 'snipped': 文件名或扩展名太长。\r\n"}
整个“剪切”路径的长度为 270 个字符。所以我知道这违反了极其古老的 MAX_PATH 规则。
根据一些 windows 文档,您可以通过将 \?\ 添加到路径的开头来使用 unicode 路径,这将允许长路径与 windows API 调用一起使用。但是,这不适用于 LibGit2Sharp。
有没有办法为 LibGit2Sharp 提供设置以允许它使用长路径?或者如果做不到这一点,是否有允许这种行为的替代 nuget 包?