我是Git / LibGit2Sharp的新手,我正在尝试使用LibGit2Sharp创建一个git存储库的镜像。按照此处给出的说明https://github.com/libgit2/libgit2sharp/issues/577,我首先通过向其添加远程数据库将外部存储库镜像到本地文件夹,并使用repo.Network.fetch(remote, fetchRefSpec)
fetchRefSpec
refs/\*:refs/*
{ p>
现在,我想将数据推送到另一个远程存储库。我在这里很困惑。因为,当通过git命令执行此操作时,将remote.remoteName.mirror
配置条目设置为true,然后执行git push remoteName
。当mirror设置为true时指定任何其他refSpec
会产生错误。
然而,当使用LibGit2Sharp时,即使我设置了mirror = true
,我仍然需要在推送时提供pushRefSpec
。提供空或通配符refSpecs
抛出异常。我甚至试过refs/tags/\*:refs/tags/*
,但我得到了同样的例外。循环遍历pushRefSpec
中的所有分支,但不创建镜像。
有人试过吗?是否有更好的方法可以做到这一点?
答案 0 :(得分:1)
.mirror
配置是git工具的一个选项。 libgit2(sharp)在不同的级别工作,您需要准确指定要推送的内容。
目前遗憾的是,它不支持带有推送模式的refspecs,所以如果你想推送每个引用,你必须单独添加它们作为推送的refspec。