我有一个SVN
-repository我想转换为git
-repository。我使用svn2git
来实现这一点。不幸的是,似乎这个工具在标签正确的时候遇到问题。我SVN
-repository看起来是这样的:svn2git无法正确导入标签
.../branches
.../tags
project-version-5.2.5/
project-version-5.3.0/
project-version-5.3.1/
project-version-5.4.0/
project-version-5.5.0/
project-version-5.5.1/
project-version-5.5.2/
project-version-5.5.3/
project-version-5.5.4/
project-version-5.6.0/
project-version-5.6.1/
project-version-5.6.2/
project-version-5.6.3/
project-version-5.6.4/
project-version-5.6.5/
project-version-5.6.6/
project-version-6.0.0/
project-version-6.0.1/
project-version-6.0.2/
project-version-6.1.0/
project-version-6.1.1/
project-version-6.1.2/
project-version-6.2.0/
project-version-6.2.1/
.../trunk
但Git仓库,并不代表这一点。标签看起来像这样:
bash:~$ git tag
project-version-5.2.5
project-version-5.3.0
project-version-5.3.1
[email protected] <-- I have no idea, where that is coming from...
project-version-5.4.0
project-version-5.5.0
project-version-5.5.1
project-version-5.5.2
project-version-5.5.3
project-version-5.5.4
project-version-5.6.0
project-version-5.6.1
project-version-5.6.2
project-version-5.6.3
project-version-5.6.4
project-version-5.6.5
请注意缺少的标签。他们由于某种原因存储为远程分支:
bash:~$ git branch -r
svn/tags/[email protected] <-- Yay, random numbers!
svn/tags/project-version-5.6.6
svn/tags/[email protected] <-- And another one.
svn/tags/project-version-6.0.0
svn/tags/project-version-6.0.1
svn/tags/project-version-6.0.2
svn/tags/project-version-6.1.0
svn/tags/project-version-6.1.1
svn/tags/project-version-6.1.2
svn/tags/project-version-6.2.0
svn/tags/project-version-6.2.1
svn/trunk
这里发生了什么?
编辑:我忘了补充我的命令:svn2git http://path/to/repository --no-minimize-url --verbose --username='username' --trunk trunk --nobranches --tags tags
EDIT2:我只是检查,结果发现,这看似随意的数字实际上在SVN
修订-repository,其标签被制成。有点奇怪,只有~20个标签中的3个得到了修改......
Edit3:显然这个问题与一个标签的注释有关,它包含"
。一个后,所有的标签都保存为分支,因为svn2git
不逃避"
,并尝试做一些像
git tag -a -m "blablabla "blablabla"." "[email protected]" "svn/tags/[email protected]"
其失败的原因很明显。我仍然不知道,为什么有些标签会添加版本号。如果任何人有任何建议如何克服这个问题,我会非常感谢。
Edit4:我找到了逃避问题的解决方案。 svn2git
-source中的转义函数有点奇怪......它只用单引号('
)替换'\''
。我完成了...
哪里是github线程?我有同样的问题,但我们现在已经很多年了。代码现在有点不同了,它包含'str.gsub(/'|“/){| c |”\\#{c}“}',但我不知道ruby是否足够了解我必须改变,你能帮助我吗? – lvthillo