【发布时间】:2015-04-07 07:12:14
【问题描述】:
我目前在一家公司工作,该公司使用 Rational/IBM ClearCase 来满足其大量源代码控制需求,并且一直在研究(当然,主要是在我的空闲时间)我们是否可以/如何迁移到 git in未来。
作为背景:我们在 ClearCase 中的许多项目都源自一个通用的“基础”系统,然后我们根据需要对其进行分支。大多数应用程序一开始都是严格基础的,但客户需求要求我们在其中分支文件,从而产生两个版本:一个基础版本,一个客户端特定版本。由于客户特定版本有自己的标签,因此每个应用程序都可以相互独立地发展。由于标签贴在每个更改文件的某个版本上,我们不必担心基数的更改会破坏客户的事情(因为它们将处于不同的修订版,直到有人进入并移动标签)。我们还通过标签跟踪代码的状态(发送给 QA、等待客户反馈、生产中)。
据我所知,我会为“基本”版本创建一个新的存储库并使用标签来定义状态,但处理特定于客户的版本确实让我感到困惑。我是否需要为客户端创建一个全新的存储库并在基本版本和客户端版本之间手动移动更改,还是有更好的方法?使用标签是处理描述哪些修订与特定客户一起使用的最佳方式,还是我遗漏了什么?我已经看到一些子模块的提及,但据我所知,它主要用于处理与应用程序相关的代码,而不是基本上大片相同的代码?
我的问题可能会泄露出去,但我所有的 git 经验都是针对个人项目使用 git 的。当您处理新建项目时(相对)容易理解行为,而不是当您尝试将新工具强加于现有工作流程时。
如果您有任何见解,我将不胜感激,并感谢您抽出宝贵时间阅读我的问题!
【问题讨论】: