将git-svn与子模块一起使用的策略



我想在本地使用带有子模块的Git,并能够从SVN推送/拉取(我所在的公司使用SVN,在不久的将来不会切换到Git)。我知道git-svn不支持这一点,但我希望能够用一个shell脚本来欺骗它。有什么想法吗?

您不能使用git-svn,因为它不允许使用git子模块。但我可以提出其他解决方案:

首先看一下SmartGit:它引入了SVN子模块的概念。svn:externals属性被转换为一个版本控制的.gitsvnextmodules文件,该文件指定svn子模块列表。要启用子模块支持,只需使用SmartGit从头开始克隆您的基本存储库(如果您只打开已经克隆的git-svn存储库,SmartGit将处于兼容模式,外部支持将关闭)。

如果你更喜欢纯Git而不是Git-svn,并且可以访问服务器,你可以将SubGit安装到svn存储库中。它将为SVN存储库创建一个Git接口(实际上是一个单独的Git存储库,将自动与SVN同步)。之后,您可以使用这个纯Git接口添加纯Git模块(我假设您的外部存储库也有Git接口,因为您询问Git子模块)。Git子模块将只存在于Git版本的存储库中,不会被翻译为SVN。

最新更新