5

一旦你有一个包含子模块对象的提交,你几乎不能让 git-svn 提交过去。

任何想法,解决方法,任何不是“不要将子模块与 git-svn 一起使用”的东西?

到目前为止,答案似乎是一个很大的否定。

有没有办法至少允许包含子模块数据的现有 git 提交在没有子模块数据的情况下提交到 svn?即使这意味着重写树。

4

2 回答 2

1

您需要用svn:externals属性替换子模块才能很好地使用 Subversion。

svn propset svn:externals [...]

我认为没有其他方法可以解决它。

于 2008-11-13T03:31:46.517 回答
0

如果您可以访问 SVN 服务器,则可以将SubGit安装到其中。它将创建一个链接的 Git 存储库,这样对 Git 存储库的任何推送都将被转换为 SVN,反之亦然。翻译是并发安全的,因此您可以将这对存储库视为与在 GitHub 上完成的相同存储库的 2 个接口(Git 和 SVN),不同之处在于翻译更加透明(所有分支都转换为分支, tags to tags, svn:ignore to .gitginore, svn:eol-style to .gitattributes value 等等)。

之后,您可以将子模块添加到生成的 Git 存储库中,而忘记 git-svn。

如果您无法访问我不知道解决方案的服务器,仅适用于 Git 的 svn:externals 支持(查看 SmartGit 和 .gitsvnextmodules 配置)。

于 2012-05-12T22:58:59.697 回答