git-svn:有没有办法让它与子模块很好玩,或者忽略它们?

时间:2008-11-05 23:11:17

标签: git version-control git-svn

一旦你有一个包含子模块对象的提交,你几乎无法让git-svn提交它。

任何想法,变通方法,任何不“不使用带有git-svn的子模块”的内容?

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

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

2 个答案:

答案 0 :(得分:1)

您需要使用svn:externals属性替换子模块才能与Subversion一起使用。

svn propset svn:externals [...]

我认为还有其他方法。

答案 1 :(得分:0)

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

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

如果您无法访问服务器,我知道没有解决方案,只有来自Git的svn:externals支持(查看SmartGit和.gitsvnextmodules配置)。