缺少分支使用git svn clone克隆非标准svn存储库
我是一个完全的git新手,我想用git svn克隆我的svn存储库。但是,在运行clone命令后,分支将丢失 回购安排如下:缺少分支使用git svn clone克隆非标准svn存储库,git,svn,git-svn,git-clone,Git,Svn,Git Svn,Git Clone,我是一个完全的git新手,我想用git svn克隆我的svn存储库。但是,在运行clone命令后,分支将丢失 回购安排如下: trunk/ branches/team/releases/release-1 branches/team/releases/release-2 ... branches/development/user1/feature1 branches/development/user1/feature2 branches/development/user2/feature3 br
trunk/
branches/team/releases/release-1
branches/team/releases/release-2
...
branches/development/user1/feature1
branches/development/user1/feature2
branches/development/user2/feature3
branches/development/user2/feature4
...
tags/release1
tags/release2
我使用的命令是:
git svn clone --trunk=/trunk --branches=branches/*/* --tags=tags/*/* --prefix=svn/ --authors-file=authors.txt <my-repo> <git-repo-name>
我怎样才能找到丢失的树枝
这不是或的副本。您可以多次指定--branchs标记:
这些是init的可选命令行选项。这些标志中的每一个都可以指向相对存储库路径(--tags=project/tags)或完整url(--tags=)。您可以指定多个--tags和/或--branchs选项,以防Subversion存储库将标记或分支放置在多个路径下。选项--stdlayout是一种将主干、标记和分支设置为相对路径的简写方式,这是Subversion的默认设置。如果还提供了任何其他选项,则以它们为准
在您的情况下,请尝试:
git svn clone \
--branches=branches/team/releases/* \
--branches=branches/development/user1/* \
--branches=branches/development/user2/* \
……等等
是否可以再次运行克隆,或者我必须从头开始删除git repo?
一般来说,你应该从头开始尝试。该工具并不意味着是一个更新脚本。事实上,不需要重新克隆整个存储库就可以做到这一点,而大型subversion存储库可能需要很多小时。我是通过编辑
.git
目录中的config
文件来实现这一点的,以适当地设置分支和标记
如果执行普通的git svn获取
,则不会发生任何事情。诀窍是欺骗/强制Git重新蚀刻所有修订:
git svn获取0:HEAD
该命令使所有标记/分支都被引入,而无需经过冗长乏味的主干导入,它足够聪明,可以跳过在初始运行中已经导入的主干修订。我现在在现有的Git存储库中有了我的SVN标记/分支,但没有新的克隆。我已经尝试过了,并编辑了我的帖子以澄清这一点。我可以在新创建的repo上再次运行clone命令,还是必须删除该repo并重新启动?我会删除该repo并重试,是的。未来粘贴您尝试过的实际命令将有助于获得更有用的答案。我认为我确实粘贴了实际命令-在发出clone命令时,我还多次指定了branch选项,这是一个疏忽。删除repo并使用多个branch选项再次运行clone命令起到了作用。谢谢。效果很好,但我必须添加
-r
标志
git svn clone \
--branches=branches/team/releases/* \
--branches=branches/development/user1/* \
--branches=branches/development/user2/* \