svn - 团队之间共享的库的单个或多个 Git 存储库

标签 svn git version-control

我正在考虑如何/是否应该从 svn 切换到 git。

我目前在 svn 中有一组多层项目,这些项目是分层的,这样 D 使用 C,C 使用 B,B 使用 A。实际部署的项目,如 X、Y、Z 使用任何公共(public)库 A-D。目的是让 future 的项目和其他团队共享基础库 (A-D) 并实现更好的分支控制。

在 svn 中,如果我们希望允许其他团队在不涉及 X、Y、Z 的情况下使用库 C,那么很简单,他们只需检查 svn 树的 C 位,如果这导致他们想要打补丁B,然后同上。他们从不接触 X、Y、Z,即使他们在同一个实际 repo 中。 git 会发生什么并不那么明显。

如果我想使用 git 设置一些东西,你会建议我如何设置它以及你建议的设置有哪些优点/缺点。

我正在寻找的功能是:

  1. 简单标记(如果可能)以便可以轻松地标记整个代码库的状态(使用通用 svn root 或单个 git 存储库很简单)
  2. 其他人可以轻松集成/重用公共(public)库 A-D
  3. 他们很容易将建议的修复/补丁反馈给我们,我们可以选择采用或忽略(这是我希望从 git 获得的主要内容之一)。
  4. 团队为共享库提供有效的私有(private)所有权功能(这样他们就可以标记它们并根据自己的时间表自行修复它们)

Git 似乎提供了我想要的东西,我只是不确定如何处理单个与多个 repos 问题。

最佳答案

If I wish to set something up using git, how would you suggest I set it up [...]

只需使用多个 git 存储库(它们非常便宜,它们类似于许多小船而不是泰坦尼克号——换句话说,我发现它们很灵活,我喜欢灵 active )。

我时不时地协助一个这样结构的项目

foo/server
foo/client
foo/docs
foo/tools/

“服务器”、“客户端”、“文档”和“工具”中的每个文件夹都是独立的 git 存储库。这允许专门的团队成员克隆和处理他们希望从事的工作。

更不用说,如果我们只想引入所有内容,我们可以克隆 foo(将其余部分作为子模块引入)。

git 允许你这样做真是太棒了,为什么不利用它呢?

[...] and what are the upsides/downsides with your suggested setup.

我的建议可能实现起来有点复杂。

关于svn - 团队之间共享的库的单个或多个 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2351803/

相关文章:

java - svnkit:如何以编程方式将 'svn status' 的精确结果作为字符串获取?

git - SVN 是否有等同于 git 的提交(没有推送)?

svn - Git 和 Subversion 是什么?

git - Branch 在 master 后面

git - 执行 git merge 时应该在什么情况下使用 strategy-option 标志? (耐心|最小|直方图|迈尔斯)

git - 如何拆分 git 存储库并遵循目录重命名?

git - 如何管理针对不同客户的常见产品定制的源代码

svn - 如何防止Grails Asset-Pipeline处理.svn文件?

version-control - 从 CVS 存储库中删除旧文件 checkout

iOS - Apple Appstore 是否支持并行分发