我有一种特殊的Clearcase怀疑。我无法完全描述为什么我在做这样一个令人困惑的架构,但我需要这样做(感谢有人长期以来做错了)。
好的,这里有一些细节:B1是一个被污染的分支,我的小组的变化和另一个小组的变化混合在一起非常糟糕,以至于无法找到哪个代码是谁的。所以提出的解决方案是创建一个名为B2的新分支(与B1处于同一级别)并将其他组的所有未修改代码放在其上(这样做的方法是将B1与B2合并然后去除从它变成原始的所有变化)。然后在B1上创建一个CR分支,并仅保留该组在该分支上新添加的文件或修改过的文件。最后从B2中创建一个集成分支,并将B1的CR分支的变化合并到B2的集成分支。
所以这就是我所做的:(用例是我有dir D的地方,其中文件a,b和c在那里。我的小组最终修改了文件,而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只有一个(由我们修改)。
现在我创建另一个名为Integration branch的分支,该分支来自B2 Label1。然后我将CR分支合并到期望它将为我提供所有三个文件a,b和c。我需要做的就是做一个版本树视图,看看谁修改了什么。
但我面临的问题是,因为我之前在分支B2上完成了文件的rmname以放置Label。合并并不真正从CR分支获取文件。
如何解决这个问题。我想有选择地合并。有可能吗?
抱歉,如果这是一个糟糕的设计。我并不熟悉Clear案例,并且选择和时间有限,无法清除其他人的混乱局面。答案 0 :(得分:1)
(脸颊)
在其中一种情况下,我实际创建了一个git workspace within my ClearCase view,在clearfsimporting返回结果之前解开Git分支中的情况!
更重要的是:
CR1----------------------------(a)
. (C1 branch from B1) \ (a merged to Int)
. \
B1-(abc) Int (b,c) # where is a???
. .
. (B2 branch from B1) . (Int branch from B2)
B2-(abc)-----------------------(bc,label1)
来自CR1的合并不会添加后退,因为:
在这种情况下,我会建议目录的图形合并,这将允许您手动解决该合并(强制解析为:“采取”)