git - 使用 svn2git 将 SVN 迁移到 GIT 失败

标签 git svn

我正在尝试使用 svn2git 将存储库从 SVN 迁移到 GIT .这是一个开源项目,公共(public) SVN 存储库 Url 是:http://svn.verinice.org/svnroot/ .随时测试迁移...

SVN 库结构为:

  • 分支机构
  • 标签
  • 中继

我使用以下命令克隆了这个 Repo:

svn2git http://svn.verinice.org/svnroot 
  --trunk TRUNK 
  --branches BRANCHES 
  --tags TAGS

但是这个命令只迁移了一个分支,根本没有任何标签。我使用这些命令来检查结果:

[user@forge git-repo]# git branch -a
* master
  springy
  remotes/springy
[user@forge git-repo]# git tag -l
[user@forge git-repo]# 

如何迁移所有分支和标签? 感谢您的帮助!

更新:

在使用参数 --authors authors-file.txt 并将姓名和电子邮件地址添加到 git 配置后,svn2git 工作正常:

 git config --global user.name "your name"
 git config --global user.email "your@email.com"

您必须在authors-file.txt 中为每个 SVN 用户添加一行:

 svn-user-name = Full Name <email@address.com>

git branch -agit tag -l 现在返回所有分支和标签。

最佳答案

我没有使用 svn2git 的经验,但您可以尝试使用 git svn clone 来切换到 git。请注意,这将花费很长时间。有关详细信息,请参阅 git help svn

请注意,这不会在 git 中创建正确的标签,这很可能是由于 svn2git 常见问题解答中讨论的 git 和 svn 标签的差异。相反,该工具将创建标记分支。如果你想把它们变成合适的标签(因为我假设你根本不会回到 SVN,这应该不会造成任何伤害),有一个讨论 here关于如何编写脚本来做到这一点。

关于git - 使用 svn2git 将 SVN 迁移到 GIT 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890247/

相关文章:

git - 是否可以配置 'git status' 使其不提供帮助文本?

svn - 不要显示svn:外部人处于svn状态

svn - 颠覆 : Defining a Location Alias

java - 将大型旧版 Java 项目移至 Git

git - 如何在 git 中重新提交

git - Gcloud 源存储库尝试将本地推送到远程并且命令使用了错误的用户名/凭据

SVN客户端钩子(Hook)

svn - 带有 Subversion 的 Gradle 多项目

git - 创建 git 存储库时如何忽略所有 svn、bin 和 obj 文件夹?

git - 如何使用 git-replace 替换提交树