问题
默认情况下,git svn clone仅从分支创建开始导入历史记录,尽管事实上,文件的历史记录在创建分支之前存在于SVN存储库中.
svn copy
如果重要的话,我们的SVN分支是由我们创建的.
我的尝试
我试过--no-minimize-url
和--follow-parent
,但没有成功.从分支创建开始,生成的Git存储库与没有这些参数的情况相同.
期望的结果
Git存储库,包含SVN存储库创建的完整历史记录.
更新
我的实际命令行是
git svn clone http://svnserver/repo/dir1/dir2/project
Run Code Online (Sandbox Code Playgroud)
-T
结果命令的参数有什么帮助:
git svn clone http://svnserver/repo/ -T dir1/dir2/project
Run Code Online (Sandbox Code Playgroud)
sle*_*ske 10
默认情况下,git svn clone仅从分支创建开始导入历史记录,尽管事实上,文件的历史记录存在于svn存储库之前的分支创建中.
是.那是真实的.git svn
如果被告知,它只会尝试将分支导入为分支.从git-svn的联机帮助页:
克隆SVN存储库时,如果没有使用描述存储库布局的选项(--trunk, - targs, - .branches, - stdlayout),git svn clone将创建一个具有完全线性历史记录的git存储库,其中分支和标记在工作副本中显示为单独的目录.
如果将一个分支的URL传递给git svn clone
(而不是顶级URL),则只能获取该分支的线性历史记录.这可能就是你所看到的.
如果需要完整历史记录,请使用上面提到的存储库布局选项,并传递顶级URL.然后git svn
将尝试为SVN分支创建git分支,并尝试给他们正确的历史记录,在创建之前返回.
请注意,这将为您提供包含所有分支的完整存储库.如果您只需要一些分支,则需要按照联机帮助页中的说明修改配置:
也可以通过在大括号内使用逗号分隔的名称列表来获取分支或标记的子集.例如:
Run Code Online (Sandbox Code Playgroud)[svn-remote "huge-project"] url = http://server.org/svn fetch = trunk/src:refs/remotes/trunk branches = branches/{red,green}/src:refs/remotes/branches/* tags = tags/{1.0,2.0}/src:refs/remotes/tags/*