【发布时间】:2010-04-27 13:45:59
【问题描述】:
我有一个奇怪的 Clearcase 疑问。我无法完全描述为什么我要做这样一个令人困惑的架构,但我需要这样做(感谢很久以前的某个人所犯的错误)。
好的,这里有一些细节:B1 是一个受污染的分支,我的组的更改和另一个组的更改混合在一起非常糟糕,以至于无法找到哪个代码是谁的)。因此提出的解决方案是创建一个名为 B2 的新分支(与 B1 处于同一级别)并将其他组的所有未修改代码放在其上(这样做的方法是将 B1 与 B2 合并,然后开始删除所有的变化,直到它变成原来的)。然后在 B1 上创建一个 CR 分支,并在该分支上只保留我组新添加的文件或修改过的文件。最后从 B2 创建一个集成分支,将 B1 的 CR 分支的更改合并到 B2 的集成分支。
这就是我所做的:(用例是我有 dir D 文件 a、b 和 c 在那里。我的小组最终修改了文件 a 而 b 和 c 根本没有修改)。
有一个分支 B1,上面有文件 a、b 和 c。还有另一个分支B2。从 B1 到 B2 进行合并。现在 B2 也有 a、b 和 c。
此时分支 B1 和 B2 是相同的。现在我从分支 B2 (rmname) 中删除文件 a。现在 B2 只有 b 和 c。我在这个分支上放了一个标签,叫做 Label1。这使得带有标签Label1的代码成为其他组的未修改代码。
现在我从 B1 创建一个名为 CR1 的子分支,并删除 B2 分支中的所有文件(即 b 和 c),使其仅包含原始代码中的修改代码。就我而言,它是文件 a。
此时带有标签 Label1 的分支 B2 有文件 b 和 c(这些是未修改的代码),而从 B1 出来的分支 CR1 只有一个(由我们修改)。
现在我创建另一个分支,称为集成分支,它来自 B2 Label1。然后我将 CR 分支合并到该分支上,期望它将为我提供所有三个文件 a、b 和 c。我需要做的就是做一个版本树视图,看看谁修改了什么。
但我面临的问题是,由于我之前在分支 B2 上完成了文件 a 的 rmname 以放置标签。合并并没有真正从 CR 分支中获取文件。
如何解决这个问题。我想有选择地合并。有可能吗?
抱歉,如果这是一个糟糕的设计。我不太熟悉 Clear case,而且清理别人的烂摊子的选择和时间有限。
【问题讨论】:
标签: clearcase