[英]How can I use git-svn to work with disparate parts of an svn repository?
我有以下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
,但是他们需要在本地使用git,因为它们无法直接访问我们的svn服务器。 git-svn
似乎正是我想要的,因为它允许我创建他们的git repo并通过git svn dcommit
和git svn rebase
管理同步。
我可以使用git svn clone https://svn-repo
轻松地为他们复制整个svn repo,但这也将为他们提供system-a
下的所有内容以及system-b
下的component-1
以外的所有内容。 不这样做的原因有很多,最起码的原因是复制(跟踪变更)不影响system-b/component-1
团队的大量存储库是不明智的。
上面显示的已加星标的目录是从中获取更新和进行更改的唯一真正需要的目录。 最好不要让他们意外更改不需要访问的内容。
如何使用git-svn
完成此操作? 我当时想我可以创建几个单独的git repos,例如:
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存储库。 有没有办法使用git-svn
在单个git repo中具有这种“稀疏签出”结构?
当然,让我为您引用手册页
--include路径= <正则表达式>
这样,就可以指定一个Perl正则表达式,该正则表达式将导致仅包含来自SVN检出的匹配路径。
--include-paths
选项应与给定存储库中的每个提取 (包括由于clone , dcommit , rebase等导致的自动提取)匹配。 --ignore-paths优先于--include-paths。
config key: svn-remote.<name>.include-paths
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.