Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用svn2git将SVN迁移到GIT失败_Git_Svn - Fatal编程技术网

使用svn2git将SVN迁移到GIT失败

使用svn2git将SVN迁移到GIT失败,git,svn,Git,Svn,我正在尝试使用将存储库从SVN迁移到GIT。这是一个开源项目,公共SVN存储库Url为:。请随意测试迁移 SVN存储库结构为: 分支机构 标签 树干 我使用以下命令克隆此Repo: svn2git http://svn.verinice.org/svnroot --trunk TRUNK --branches BRANCHES --tags TAGS 但是这个命令只迁移一个分支,根本没有标记。我使用以下命令检查结果: [user@forge git-repo]# git

我正在尝试使用将存储库从SVN迁移到GIT。这是一个开源项目,公共SVN存储库Url为:。请随意测试迁移

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用户名=全名

git branch-a和git tag-l现在返回所有的分支和标记。

我没有使用svn2git的经验,但是您可以尝试使用
git svn clone
切换到git。请注意,这将需要很长时间。有关更多信息,请参阅git help svn


请注意,这不会在git中创建正确的标记,很可能是由于svn2git常见问题解答中讨论的git和svn标记的不同。相反,该工具将创建标记分支。如果您想将这些标记转换为正确的标记(因为我假设您根本不会回到SVN,这应该不会造成任何伤害),这里讨论了如何编写脚本来实现这一点。

需要知道的是,所有这些工具都是在git的本机SVN支持git SVN的基础上构建的。因此,可以直接使用git svn进行克隆、获取变更集等,但最好只有一个脚本/工具来帮助我们在迁移过程中完成所有操作,因此需要此类工具


我使用了上托管的svn2git包装器脚本进行subversion到git的迁移,这确实很有帮助,特别是当我们希望定期从subversion存储库中提取变更集时,因为明显的原因,我们没有完全关闭subversion repo。您可以通过ruby包装器脚本migration.rb了解更多信息。

也可以。分支而不是标记是无害的-可以接受。
 svn-user-name = Full Name <email@address.com>