我有一个SVN
-repository,我想将它转换成一个git
-repository。我正在使用svn2git
来实现这一点。不幸的是,该工具似乎无法正确获取标签。我的SVN
-repository 看起来像这样:
.../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
project-version-5.3.1@3812 <-- 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/project-version-5.6.5@4990 <-- Yay, random numbers!
svn/tags/project-version-5.6.6
svn/tags/project-version-5.6.6@5620 <-- 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"." "project-version-5.6.5@4990" "svn/tags/project-version-5.6.5@4990"
由于明显的原因而失败。我仍然不知道,为什么对于某些标签它会添加修订号。如果有人对如何克服这个问题有任何建议,我将非常感激。
Edit4:我找到了逃避问题的解决方案。-source中的转义函数svn2git
有点奇怪......它只'
用'\''
. 我受够了...