将具有完整历史记录的svn repo克隆到本地磁盘
我正在将一些非常大的回购协议从svn“转移”到git。 我知道怎么做,但我需要加快这个过程 为了保存I/O,我想将svn repo移动到linux机器上,并在那里运行转换 我找到了这篇文章,建议使用以下命令:将具有完整历史记录的svn repo克隆到本地磁盘,svn,git-svn,Svn,Git Svn,我正在将一些非常大的回购协议从svn“转移”到git。 我知道怎么做,但我需要加快这个过程 为了保存I/O,我想将svn repo移动到linux机器上,并在那里运行转换 我找到了这篇文章,建议使用以下命令: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH 我将在svn服务器上执行该命令,然后将其复制到本地磁盘。 我是否需要svn服务器来访问存储库?或者我可以: svn git clone my-local-repo to-my-new-git-repo
svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH
我将在svn服务器上执行该命令,然后将其复制到本地磁盘。
我是否需要svn服务器来访问存储库?或者我可以:
svn git clone my-local-repo to-my-new-git-repo
任何关于加速“git svn克隆”的提示都非常感谢
我知道将svn迁移到git有很多问题,但这是关于在克隆之前将svn repo迁移到本地磁盘 Subversion始终通过使用file://URL提供本地访问。 这也是占用最小的I/O和内存,因为只调用svn客户机。这也是访问(svn)存储库的最快方式 有关更多详细信息,请参阅
关于跨服务器移动存储库,请参见对于一次性迁移,加快
git svn
速度的最佳方法是不使用它。如果你需要整个历史,你必须一个接一个地经历历史,这只需要时间。因此,如果您有一个存储库的本地副本,那么如果不在进程中添加硬件(增加CPU和RAM),您将无法获得更快的速度
对于一次性迁移,git svn
不是转换存储库或存储库部分的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用Git SVN
,而是svn2git
,它更适合此用例
有很多工具称为svn2git
,最好的工具可能是来自的KDE工具。我强烈建议使用svn2git
工具。这是我所知道的最好的一款,它的规则文件非常灵活
您将能够轻松地配置svn2git
s规则文件,以从当前的SVN布局生成所需的结果,包括可能存在的任何复杂历史记录
如果您不是100%了解存储库的历史记录,svneverever
from是在将SVN存储库迁移到Git时调查其历史记录的一个很好的工具
尽管
git svn
更容易开始,但以下是使用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?这是一次性迁移