我尝试迁移最初不使用标准布局的Subversion存储库。我无法弄清楚如何迁移它。
例如。在SVN Rev 1. - 700中,布局是
[svn]/projectfile
[svn]/projectfile2
在修订版700之前,它将变为
[svn]/trunk/projectfile
[svn]/tags
[svn]/branches
如何运行git svn init命令?
现在我使用
git svn init -s <subversion_repository>
它会显示目录中的所有内容,就像没有分支一样。 (与使用以下命令相同)
svn checkout <subversion_repository_root>/
答案 0 :(得分:2)
由于我手头没有一个subversion repo试图解决这个问题,我只能概述解决这个问题的方法,这个问题可能有效,也可能不行:
cd
git svn init svn://path/to/svn/repo
git svn fetch --revision 1:699
(或者无论您使用非标准版面的修订范围如何).git/config
并修改[svn-remote]
部分,以添加/修改fetch
,branches
和tags
条目:[svn-remote "svn"] url = svn://path/to/svn/repo fetch = trunk:refs/remotes/trunk branches = branches/*:refs/remotes/* tags = tags/*:refs/remotes/tags/*
git svn fetch --revision 700:HEAD
以获取其余的repo git svn rebase --local
以确保Git创建文件。理论上,这应该会为您提供一个Git存储库,其中包含完整的历史记录以及所有分支和标记。
像往常一样,在执行任何此类操作之前备份可能被此触及的任何内容,并自行承担风险等。
答案 1 :(得分:0)
正如提供的答案,我发现在已经获取Git的所有修订版本时会出现问题。创建新问题,例如this topic
在我查看了存储库后,我发现如果我提供参数(-s)将我的存储库标记为标准存储库,它将忽略所有非标准,在我的情况下,它将忽略Rev.1-700然后将自动从700转换。
所以,现在,我仍然没有解决办法,除了使用git-svn和原始网址的完整提取,并忽略导致问题发生的路径。