了解 git-svn 配置

Understanding git-svn configuration

git-svn 手册页有这个例子:

[svn-remote "project-a"]
        url = http://server.org/svn
        fetch = trunk/project-a:refs/remotes/project-a/trunk

因此,据我所知,它将 svn 配置为从 http://server.org/svn/trunk/project-a 获取更改,这是 trunk/project-a 的相对路径和根 url 的串联结果,即 http://server.org/svn。这是正确的吗?

此外,我对 fetch 中的 : 分隔符感到困惑。它是用作列表中元素的分隔符还是元组?

最后,为什么 trunk/project-a 在这个列表中重复了两次,为什么它有第二次 refs/remotes

fetch的值为refspec,由remote和local两部分组成。冒号左边的部分是远程(SVN)仓库中的路径,而冒号右边的部分是本地(git)仓库中对应的ref。您可以在 git-config(远程。*)和 git-fetch 联机帮助页上找到更多信息。我似乎记得 git-svn 处理通配符与 git 在 refspecs 中的正常通配符处理有一些差异。