我有一个现有的 SVN 存储库,它有一个“公共”目录,其中包含不同项目共享的模块。布局是这样的:
http://example.com/svn/trunk/common/module_1
http://example.com/svn/trunk/common/module_2
...
http://example.com/svn/trunk/common/module_X
由于各种原因,我正在使用 git 管理其他一些项目。我需要在 SVN 和 git 项目中使用module_X,所以我打算使用 git-svn。但是,会出现以下问题:
user@host:/repos$ git svn clone http://example.com/svn/trunk/common/module_X destination
此命令将在/repos/destination中创建一个新的 git 存储库并将module_X内容提取到其中。我需要完成的是将module_X放入/repos/destination/module_X中,而不是将其内容直接提取到/repos/destination/中。
一开始似乎是一个选择是使用
user@host:/repos$ git svn clone =--ignore-paths='^((?!module_X).*)$' http://example.com/svn/trunk/common/ destination
这将在/repos/destination和子目录/repos/destination/module_X中创建一个存储库。但问题是我的 SVN 存储库有相当大的修订历史,并且对整个common/路径的操作相当慢。
有谁知道如何做到这一点?