我使用git-svn来跟踪和使用git在多个svn分支上工作。我在.git/config
文件中使用以下配置:
[svn-remote "svn"]
url = https://example.com/svn/some-dir/project-name/
fetch = trunk:refs/remotes/svn-trunk
fetch = branch/Topic:refs/remotes/svn-topic
这会跟踪两个分支,树干有时会合并到主题中,并且通常,效果很好。但是使用一个特定的svn存储库,git svn fetch --fetch-all
会产生以下错误:Couldn't find revmap for https://example.com/svn/some-dir/project-name/some-dir/project-name/trunk
。而且,当然,在合并中不会反映在git历史中。
主要的主要问题:显然,路径错误-“ some-dir/project-name/
”重复了两次。但是正如我所写的那样,对于内部svn来说,这很好。
那么,什么原因导致了这个问题,我该如何解决?
我尝试将配置更改为以下内容:
[svn-remote "svn"]
url = https://example.com/svn/
fetch = some-dir/project-name/trunk:refs/remotes/svn-trunk
fetch = some-dir/project-name/branch/Topic:refs/remotes/svn-topic
在这种情况下,git svn fetch --fetch-all
命令产生以下错误:W: Item is not readable: Item is not readable at /mingw64/share/perl5/site_perl/Git/SVN.pm line 153.
。
作为一种解决方法,我使用git replace --graft
(并相应地修改.git/refs/remotes/svn-topic
文件)来手动保留合并历史记录,但这显然很容易。
我的环境: