【问题标题】:Can I use git repos inside svn repos我可以在 svn repos 中使用 git repos
【发布时间】:2011-01-10 11:40:56
【问题描述】:

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

我想做的是:

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

这可能吗?如果有,怎么做?

我可以通过以下组合来做到这一点:

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

【问题讨论】:

  • P.S.我对 svn 很熟悉,但对 git 不是很熟悉——只是设法克隆、添加、提交和推送

标签: svn git


【解决方案1】:

相当有趣的是,github added Subversion support 是一个非愚人节的玩笑。换句话说,它看起来像个愚人节玩笑,但功能齐全!

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

【讨论】:

【解决方案2】:

我相信您所要求的大部分内容都可以使用 git-svn (http://git.or.cz/course/svn.html) 实现,它允许您在颠覆之上分层 git。当你觉得合适的时候,你可以推回 svn 存储库,并且在这之间以正常的 git 方式使用 git。

【讨论】:

  • 供应商分支的事情呢?你知道你是否可以用 git-svn 实现那种东西吗?
【解决方案3】:

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

对于以这种方式使用的每个 git repo,我建议将 .svn 添加到 .gitignore 文件中。

您需要一种策略来防止私有更改进入 git 集线器的上游。例如,将所有这些保存在一个单独的分支中,您可以在上传之前进行反向 rebase 合并,然后将其还原。

【讨论】:

    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2020-01-31
    • 2017-06-08
    • 2013-11-21
    相关资源
    最近更新 更多