【问题标题】:Clearcase - selective mergeClearcase - 选择性合并
【发布时间】: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


    【解决方案1】:

    (舌在脸颊)
    在其中一种情况下,我实际上创建了一个git workspace within my ClearCase view,在Git 分支中解开这种情况,然后clearfsimporting 返回结果!

    更重要的是:

          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 的合并不会加回,因为:

    • A 的共同祖先(在 B1 上)是 B2 的一部分,然后在 B2 上被删除
    • Int 来自 B2
    • a 不考虑合并到来自 B2 的分支,因为它已经是 B2 的一部分。

    在这种情况下,我建议对目录进行图形合并,这将允许您手动解决该合并(强制解决方案为:“采取”)

    【讨论】:

    • 您好 Vonc,非常感谢您的回复。我还发现,除了以图形方式进行合并之外,似乎没有更好的方法。非常感谢。凯沙夫
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多