0

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

4

1 回答 1

1

您不能使用 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。

于 2012-07-11T01:25:56.647 回答