Den*_*boy 2 svn migration git svn2git
我正在使用svn2git来测试svn存储库到git的迁移。现在我的svn像这样构建
myproj 包含
repo1 /
repo2 (obsolete)/
old/
Run Code Online (Sandbox Code Playgroud)
每个回购都包含自己的分支,标签等。我只需要repo1中的所有内容。当我开始流程时,我得到以下信息:
svn2git https://server/myproj/repo1 --username LVO
Run Code Online (Sandbox Code Playgroud)
输出:
Initialized empty Git repository in /folder/.git/
Using higher level of URL: https://server/myproj/repo1 => https://server/myproj
Run Code Online (Sandbox Code Playgroud)
并且比该过程开始。恐怕它也会占用所有其他旧仓库。这是启动它的正确方法吗?:
$ svn2git https://server/myproj/repo1 --username xxx --trunk=/repo1 --branches=/repo1 --tags=/repo1
Run Code Online (Sandbox Code Playgroud)
(尤其是行李箱的东西对我来说还不清楚)。当我的仓库在这棵树中时,我该如何启动svn2git。
对于一次性迁移git-svn,不是用于转换存储库或部分存储库的正确工具。这是一个伟大的工具,如果你想使用Git的作为前端为现有的SVN服务器,但对于一次性转换,你应该不使用git-svn,但是svn2git这是该用例更加适合。
svn2git您使用的工具基于git-svn,因此也遭受大多数相同的缺陷,仅修复了克隆后操作中的某些缺陷。
有很多称为svn2git的工具,可能最好的一种是来自https://github.com/svn-all-fast-export/svn2git的KDE 。我强烈建议您使用该svn2git工具。这是我所知道的最好的,它在处理规则文件方面非常灵活。
您将能够轻松配置svn2gits规则文件,以从当前SVN布局(包括任何复杂的历史记录)中生成所需的结果。
如果您不是100%知道存储库的历史记录,那么svneverever从http://blog.hartwork.org/?p=763中获取信息是一个很好的工具,可以在将SVN存储库迁移到Git时对其进行调查。
尽管git-svn(或svn2git基于它的)入门比较容易,但是还有以下一些原因,除了灵活性之外,为什么使用KDE svn2git而不是git-svn更好:
svn2git(如果使用了正确的)历史记录,可以更好,更干净地重建历史记录,对于具有分支和合并等更复杂历史记录的情况尤其如此git-svn标签的标签包含一个额外的空提交,这也使它们不成为分支的一部分,因此在fetch您给出--tags命令之前,正常情况下不会得到它们,因为默认情况下,也仅会获取指向提取的分支的标签。带有正确的svn2git标签是它们所属的位置svn2git,git-svn最终会丢失历史记录svn2git您还可以拆分一个SVN仓库分成多个Git仓库容易svn2git比git-svn您会发现,有很多原因会导致性能git-svn下降,而KDE svn2git则更胜一筹。:-)
| 归档时间: |
|
| 查看次数: |
5165 次 |
| 最近记录: |