Perl svn2git断管错误
我使用,但它总是在同一行失败: 我的命令:Perl svn2git断管错误,perl,svn2git,Perl,Svn2git,我使用,但它总是在同一行失败: 我的命令: svn2git https://my-svn/proj/ --revision 1000:1001 --username xxx 一小时后,此命令停止运行,失败原因如下: Broken pipe at /usr/lib64/perl5/vendor_perl/SVN/Ra.pm line 623. 什么会导致此问题?对于一次性迁移git svn而言,它不是转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好
svn2git https://my-svn/proj/ --revision 1000:1001 --username xxx
一小时后,此命令停止运行,失败原因如下:
Broken pipe at /usr/lib64/perl5/vendor_perl/SVN/Ra.pm line
623.
什么会导致此问题?对于一次性迁移
git svn
而言,它不是转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用Git SVN
,而是svn2git
,它更适合此用例
有很多工具称为svn2git
,最好的工具可能是来自的KDE工具。我强烈建议使用svn2git
工具。这是我所知道的最好的一款,它的规则文件非常灵活
您使用的svn2git
工具是基于git svn
的,因此也有许多相同的缺点
您将能够轻松地配置svn2git
s规则文件,以从当前的SVN布局中生成所需的结果,您还可以告诉它保留空目录,方法是给它一个命令行选项,使其将空.gitignore
文件放在目录中以保留它们
如果您不是100%了解存储库的历史记录,svneverever
from是在将SVN存储库迁移到Git时调查其历史记录的一个很好的工具
尽管
git svn
(或您使用的svn2git
)更容易开始,但以下是使用KDEsvn2git
而不是git svn
更优越的原因,除了它的灵活性之外:
- 通过
(如果使用了正确的历史记录),可以更好、更清晰地重建历史记录,对于具有分支和合并等更复杂的历史记录尤其如此svn2git
- 这些标记是真实的标记,而不是Git中的分支
- 使用
时,标记包含一个额外的空提交,这也使得它们不是分支的一部分,因此正常的git svn
将不会获取它们,直到您将fetch
交给命令,因为默认情况下,也只获取指向已获取分支的标记。使用正确的svn2git标记就可以找到它们所属的位置--tags
- 如果您更改了SVN中的布局,您可以使用
轻松配置它,使用svn2git
您最终将丢失历史记录git SVN
- 使用
还可以轻松地将一个SVN存储库拆分为多个Git存储库svn2git
- 或者将同一SVN根目录中的多个SVN存储库轻松组合到一个Git存储库中
- 使用正确的
比使用svn2git
git svn
git svn
更差,而KDEsvn2git
更优越。:-) 据我所知,“断管”错误是由于接收文件时出现问题造成的。它可能真的很大,也可能有一些奇怪的地方
如果遇到错误,幸运的是,在大多数情况下,您可以简单地重新运行git svn clone
命令或其他相关命令,通常它可以从停止的地方无缝地恢复
如果您正在使用
gitsvn
将svn repo一次性迁移到git,请务必遵循以下步骤。他们有一个将SVN标记正确转换为Git标记的工具,但这是一个破坏性的过程,您将无法再使用Git repo与SVN同步,因此只有在您最终准备放弃SVN repo时才能执行此操作。网络上的某些内容没有响应。可能是SVN服务器超时。这不是Perl的问题,而是程序正在与之对话的系统之一。