我之前已经记录了我对 Clearcase 作为源代码控制系统的看法,但不幸的是我仍在使用它。所以我求助于你们来帮助我减轻我的挫败感之一。
我们刚刚从每个开发人员一个分支系统转变为每个任务一个分支系统,以尝试改善我们在确定某些文件更改的原因时遇到的一些问题。一般来说,我对解决方案感到满意,但有一个主要问题。我们使用简单的脚本来启动和结束任务,这些任务创建一个以用户名和任务编号命名的新分支,然后更新本地快照视图以具有类似于以下的配置规范:
元素 * 结帐 元素 * .../martin_2322/LATEST 元素 * /main/LATEST -mkbranch martin_2322 加载/项目/应用程序
假设我的项目有两个耦合文件 A.cs 和 B.cs。对于我的第一个任务,我在分支上对 A 进行了更改。然后无论出于何种原因,我都需要停止处理任务 2322 并开始处理任务 2345(任务 2322 尚未完成,因此我不会将其合并回主任务)。我创建了一个新的任务分支 2345,编辑 A.cs 和 B.cs 并将结果合并回 main。现在我回到 2322 上工作,所以我将我的配置规范改回上面定义的配置规范。此时,我从任务分支中看到了 A.cs 文件(正如我之前编辑的那样,所以我得到了该分支的本地版本)和最新的来自 main 的 B.cs 版本。由于我没有对 2345 分支上的 A.cs 进行更改,因此构建中断。相反,我需要的是能够从我离开的地方拿起任务 2322 并使用旧版本的 A.cs 来查看它 - 这是创建分支时 main 中最新的版本。
我看到它的方式我有几个选项来解决这个问题:
更改配置规范,以便它在正确的日期从 main 获取文件。如果我知道日期并且不介意手动设置它,这很容易做到,但我不知道如何将它自动化到我们的任务切换脚本中。反正有没有得到一个分支的创建日期?
为 main 上的每个分支创建一个标签。理论上做起来很简单,但是我们安装的 CC 中的标签系统已经在几百个标签的重压下崩溃了,所以我不知道它是否可以处理每个分支的每个开发人员(请注意我的示例中的任务是 2322,我们只完成了项目的四分之一)
从主分支合并到任务分支。再次应该可以工作,但是长时间运行的分支将不仅包含为该任务更改的文件,还包含所有需要合并以使不相关的事情正常工作的文件。这使得它们与每个开发人员的分支方法一样复杂。我想查看哪些文件被更改以完成特定任务。
我希望我只是在这里遗漏了一些东西,并且有一种方法可以设置我的配置规范,以便它从 main 检索预期的文件,而无需笨拙的解决方法。那么,你们如何在 Clearcase 中进行分支?