将svn2git拆分为多个修订版
我正在使用svn2git将svn repo迁移到git repo。 svn回购相当大。我尝试的第一件事是:将svn2git拆分为多个修订版,git,svn,version-control,svn2git,Git,Svn,Version Control,Svn2git,我正在使用svn2git将svn repo迁移到git repo。 svn回购相当大。我尝试的第一件事是: $ mkdir repo $ cd repo $ svn2git https://svn/repo/ --revision 1:40000 --username xxx 这开始很好,但几小时后我得到: 错误:git svn的waitpid失败:没有子进程无法读取 响应正文:SSL错误:找到了具有意外长度的TLS数据包 收到 现在,我想将svn2git命令分为几个步骤。像这样: $ mkd
$ mkdir repo
$ cd repo
$ svn2git https://svn/repo/ --revision 1:40000 --username xxx
这开始很好,但几小时后我得到:
错误:git svn的waitpid失败:没有子进程无法读取
响应正文:SSL错误:找到了具有意外长度的TLS数据包
收到
现在,我想将svn2git命令分为几个步骤。像这样:
$ mkdir repo
$ cd repo
$ svn2git https://svn/repo/ --revision 1:1000 --username xxx
$ svn2git https://svn/repo/ --revision 1000:2000 --username xxx
$ svn2git https://svn/repo/ --revision 2000:3000 --username xxx
...
我知道这是一个丑陋的方式,但我认为目前没有其他选择。这最终会给我提供与
1:40000相同的解决方案,还是会覆盖它?我试着用du-sh repo/
检查,但是大小总是不同的(不总是在增长),所以我不知道 对于一次性迁移git svn
不是转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用Git SVN
,而是svn2git
,它更适合此用例
有很多工具称为svn2git
,最好的工具可能是来自的KDE工具。我强烈建议使用svn2git
工具。这是我所知道的最好的一款,它的规则文件非常灵活
您使用的svn2git
工具基于git svn
,因此与directgit svn
有许多相同的缺点
您将能够轻松地配置svn2git
s规则文件,以从当前的SVN布局中生成所需的结果,您还可以告诉它保留空目录,方法是给它一个命令行选项,使其将空.gitignore
文件放在目录中以保留它们
如果您不是100%了解存储库的历史记录,svneverever
from是在将SVN存储库迁移到Git时调查其历史记录的一个很好的工具
尽管git svn
(或您使用的svn2git
)更容易开始,但以下是使用KDEsvn2git
而不是git svn
更优越的原因,除了它的灵活性之外:
- 通过
svn2git
(如果使用了正确的历史记录),可以更好、更清晰地重建历史记录,对于具有分支和合并等更复杂的历史记录尤其如此
- 这些标记是真实的标记,而不是Git中的分支
- 使用
git svn
时,标记包含一个额外的空提交,这也使得它们不是分支的一部分,因此正常的fetch
将不会获取它们,直到您将--tags
交给命令,因为默认情况下,也只获取指向已获取分支的标记。使用正确的svn2git标记就可以找到它们所属的位置
- 如果您更改了SVN中的布局,您可以使用
svn2git
轻松配置它,使用git SVN
您最终将丢失历史记录
- 使用
svn2git
还可以轻松地将一个SVN存储库拆分为多个Git存储库
- 或者将同一SVN根目录中的多个SVN存储库轻松组合到一个Git存储库中
- 使用正确的
svn2git
比使用git svn
你看,有很多原因导致git svn
更差,而KDEsvn2git
更优越。:-) 对于一次性迁移git svn
不是转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用Git SVN
,而是svn2git
,它更适合此用例
有很多工具称为svn2git
,最好的工具可能是来自的KDE工具。我强烈建议使用svn2git
工具。这是我所知道的最好的一款,它的规则文件非常灵活
您使用的svn2git
工具基于git svn
,因此与directgit svn
有许多相同的缺点
您将能够轻松地配置svn2git
s规则文件,以从当前的SVN布局中生成所需的结果,您还可以告诉它保留空目录,方法是给它一个命令行选项,使其将空.gitignore
文件放在目录中以保留它们
如果您不是100%了解存储库的历史记录,svneverever
from是在将SVN存储库迁移到Git时调查其历史记录的一个很好的工具
尽管git svn
(或您使用的svn2git
)更容易开始,但以下是使用KDEsvn2git
而不是git svn
更优越的原因,除了它的灵活性之外:
- 通过
svn2git
(如果使用了正确的历史记录),可以更好、更清晰地重建历史记录,对于具有分支和合并等更复杂的历史记录尤其如此
- 这些标记是真实的标记,而不是Git中的分支
- 使用
git svn
时,标记包含一个额外的空提交,这也使得它们不是分支的一部分,因此正常的fetch
将不会获取它们,直到您将--tags
交给命令,因为默认情况下,也只获取指向已获取分支的标记。使用正确的svn2git标记就可以找到它们所属的位置
- 如果您更改了SVN中的布局,您可以使用
svn2git
轻松配置它,使用git SVN
您最终将丢失历史记录
- 使用
svn2git
还可以轻松地将一个SVN存储库拆分为多个Git存储库
- 或者在同一个SVN r中组合多个SVN存储库