LibGit2Sharp从网络文件共享克隆

时间:2017-10-02 22:42:22

标签: libgit2sharp

当远程托管在网络驱动器上时,我遇到使用文件传输进行克隆的问题。

我下载了该项目,并尝试添加一些测试用例:

[Fact]
public void CanCloneALocalRepositoryFromANetworkDriveUri()
{
    var networkPath = @"file:///192.168.1.1/Share/TestRepo.git";
    var uri = new Uri(networkPath);
    AssertLocalClone(uri.AbsoluteUri, BareTestRepoPath);
}

失败了:

LibGit2Sharp.LibGit2SharpException : failed to resolve path 'file://192.168.1.1/Share/TestRepo.git': The filename, directory name, or volume label syntax is incorrect.

我尝试将驱动器号(Z :)映射到共享,然后运行:

[Fact]
public void CanCloneALocalRepositoryFromAMappedNetworkDrive()
{
    var networkPath = @"file:///Z:/TestRepo.git";
    var uri = new Uri(networkPath);
    AssertLocalClone(uri.AbsoluteUri, BareTestRepoPath);
}

失败了:

LibGit2Sharp.LibGit2SharpException : failed to resolve path 'Z:/TestRepo.git': The system cannot find the path specified.

除非我设置:

HKLM \ SOFTWARE \微软\的Windows \ CurrentVersion \策略\ SYSTEM \ EnableLinkedConnections

到DWORD值为1,按this TechNet article - 在这种情况下克隆成功。但是,在我的情况下,这不是一个可行的解决方案,因为它会在安全意识的环境中引发部署问题。

LibGit2Sharp似乎无法从文件UNC中克隆。我是否理解正确,如果有,有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

file:/// URL语法不适用于UNC路径。只需使用UNC路径,例如:

\\192.168.1.1\Share\TestRepo.git

这也适用于LibGit2Sharp和git命令行客户端。