如何使用git svn处理svn存储库的不同部分?
我有以下svn存储库结构:如何使用git svn处理svn存储库的不同部分?,git,version-control,git-svn,Git,Version Control,Git Svn,我有以下svn存储库结构: branches branch-1 branch-2 trunk system-a component-0 component-1 system-b* component-0 component-1* shared* site_scons* SConscript* 我有一个团队需要开发system-b的component-1,但他们需要在本地使用g
branches
branch-1
branch-2
trunk
system-a
component-0
component-1
system-b*
component-0
component-1*
shared*
site_scons*
SConscript*
我有一个团队需要开发system-b
的component-1
,但他们需要在本地使用git,因为他们无法直接访问我们的svn服务器git svn
似乎正是我想要的,因为它允许我创建他们的git回购,并通过git svn dcommit
和git svn rebase
管理同步
我可以使用git svn clone轻松地为他们复制整个svn repohttps://svn-repo
,但这也将为他们提供system-a
下的所有内容,以及system-b
下组件1
以外的所有内容。不这样做有几个原因,其中最重要的一个原因是复制(并跟踪)大量不影响system-b/component-1
团队的存储库是不明智的
上面显示的星号目录是他们真正需要从中获取更新并进行更改的唯一目录。让他们不可能意外地对不需要访问的内容进行更改也很好
如何使用git svn实现这一点?我在想我可以创建几个独立的git回购,一个la:
git svn clone https://svn-repo/trunk/SConscript
git svn clone https://svn-repo/trunk/site-scons
git svn clone https://svn-repo/trunk/system-b/component-1
git svn clone https://svn-repo/trunk/shared
但这看起来和听起来都会让git团队头疼,因为据我所知,这会创建四个实际上不同的git存储库。有没有一种方法可以使用gitsvn
在单个git回购中使用这种“稀疏签出”结构?当然,让我为您引用
--包含路径=
这允许指定一个Perl正则表达式,该表达式将只包含来自SVN的签出的匹配路径。--include path
选项应与给定存储库上的每次提取(包括由于克隆、dcommit、重新基等而自动提取)相匹配--忽略路径优先于--include路径
config键:svn remote..包括路径