问题 我可以在svn repos中使用git repos吗?


在工作中,我们将所有客户项目保留在subversion存储库中,并且在可预见的未来不会改变它。我们的许多项目使用相同的插件/模块,我们也开源其中一些并在我们自己的github帐户上共享它们。

我想做的是:

  1. 使用subversion中的所有代码维护一个客户端项目
  2. 任何开发人员都可以将任何远程/ github存储库中的插件/模块添加到项目中
  3. 任何开发人员都能够对github repos进行更改,并将它们添加到项目的svn repo中(按项目逐个项目,而不是一次性完成)
  4. 能够对从github repos中提取的代码进行项目特定的调整,这些代码不会被推回到github或影响从github提取更改的能力
  5. 具有所需ssh密钥的开发人员可以将对github上的代码的本地更改推送回github,因此任何错误修复或对使用插件/模块的所有项目都有益的新功能也可以将其拉下来。

这可能吗?如果是这样,怎么样?

我可以结合使用以下组件来完成此操作:

  1. 供应商在svn repos中为每个外部github存储库分支,以保持github上可重用代码的分离和项目的调整代码。
  2. 将.git文件夹提交到svn repo中的供应商分支,以使任何人都可以获取最新的更改。

6728
2018-01-28 16:09


起源

附:我对svn非常熟悉,但对git不太熟悉 - 只是管理克隆,添加,提交和推送 - neilcrookes


答案:


相当有趣, github添加了Subversion支持 作为一个非四月傻瓜的笑话。换句话说,它 看着 就像一个愚人节的笑话,但功能齐全!

您可以使用Subversion URL将git存储库添加为svn:externals http://github.com/USER/PROJECT


10
2018-04-08 18:32



GitHub更新了SVN支持, 阅读所有关于它的内容。 - Teun Zengerink


我相信你要求的大部分内容都可以使用git-svn(http://git.or.cz/course/svn.html)它允许你在颠覆之上层叠git。当您觉得这是一个美好的时光时,您可以回到svn存储库中,并以正常的git方式使用git。


2
2018-01-28 16:15



供应商分支的事情怎么样?你知道如果你能用git-svn实现这种目的吗? - neilcrookes


按照您的建议方式组合.git和.svn存储库应该没有问题。

我建议添加 .svn 以这种方式使用的每个git repo的.gitignore文件。

您需要一种策略来防止私有变更上行到git中心。例如,将所有这些保存在一个单独的分支中,您可以在上载之前执行反向rebase合并,然后还原它。


2
2018-01-28 16:20