问题总结:
当我写这篇文章时,我意识到有很多细节,所以这里是标题:
- 对于在工作环境中使用 SVN 和 Git SVN,但又想使用远程 Git Repo (BitBucket) 从工作环境外部访问相同代码的许多用户的团队来说,什么是好的工作流程,将更改共享到这段代码在不在办公室时相互之间,然后在回到办公室时安全地重新回到 SVN?当其他人也在办公室内继续使用 Git SVN 时?
在写这篇文章时,我也开始意识到我要求做的事情真的很复杂,可能根本不可能......
细节:
我与一群使用 SVN 存储库的人一起工作。我们中的许多人已经开始使用 Git SVN,现在正在收获在本地使用 Git 的好处,随心所欲地分支,必要时合并到我们本地的 Masters,然后重新提交回 SVN。这很好用(尽管我意识到我们并没有获得纯 Git 解决方案的所有好处)。
我最近开始使用私有 BitBucket Git 存储库作为 Master 的远程,因此我可以轻松地将代码传输到其他地方或从其他地方传输代码。工作流程是这样的:
- 在工作中,来自 SVN Trunk => Local Work Master 的 Rebase。
- 从本地 Work Master => BitBucket Master 推送。
- 在家里,从 BitBucket Master => Local Home Master 拉取。
- 在家编写代码,分支,合并,享受 git。
- 从本地家庭分支合并 => 本地家庭主。
- 从本地 Home Master => BitBucket Master 推送。
- 在工作中,从 BitBucket Master 拉到 Local Work Master。
- 针对 SVN 主干变基。
- 向 SVN 提交。
好的,有几个步骤,但对我来说效果很好。但是,我的一些同事想开始做同样的事情。更重要的是,我们希望能够在没有 SVN 的情况下使用我们的 BitBucket Git 存储库。
我们正在考虑的一些事情的例子:
- 如果我们中的一个人不在办公室,他们希望能够获得最新的代码。在工作中,我可以从 SVN 变基,然后推送到 BitBucket,让我的同事可以使用最新的代码。
- 如果我们两个想要共享一些更改(假设我们中的一个或两个都不在办公室),我们可以在 BitBucket 上为此创建一个功能分支,并根据需要每次推送和拉取它。
- 当我们对它感到满意时,我们可以将其合并到我们的 Local Home Master 中,然后推送到 BitBucket Master,准备好在我们回来工作时拉取。
- 一旦回到工作岗位,我们中的一个人可以将 Master 从 BitBucket 拉到我们的 Local Work Master,然后像往常一样针对 SVN 和 dcommit 进行 rebase。
但是,假设我们中的一个人已经做到了这一点,那么团队中的其他人会发生什么?如果他们从 BitBucket Master 中提取,他们将获得更改。但是,如果他们从 SVN 变基,他们也会得到更改。
如果两者都做会发生什么?这只是一个可能的障碍。我能想到其他的步骤,如果这一切都可能陷入真正的混乱。
不幸的是,我们的持续集成工作流程与其他业务一样与 SVN 相关联。因此,我们实际上并没有完全迁移到 Git 的选择。我们也无法从公司外部访问我们的 SVN 存储库。