邪恶的双胞胎问题和减法合并

时间:2009-10-28 11:37:39

标签: clearcase

有人能解释什么是Clearcase中的邪恶双胞胎和减法合并?

2 个答案:

答案 0 :(得分:10)

邪恶双胞胎

Evil Twin是您已删除的元素(使用rmname)并希望重新添加,但在目录的先前版本中存在“邪恶双胞胎”。

您必须记住每个元素都有唯一的ID,因此您尝试添加具有相同名称的元素 - 但使用不同的UID。这是不允许的。

处理Evil Twin的最佳方法是将现有元素的最新版本重新链接到新版本的目录。然后,您可以创建元素的新版本并替换其中的数据。

减法合并

减法合并与选择性合并相反。

选择性合并(默认的bog标准合并)会将其他元素版本的更改添加到您的签出版本中。

减法合并尝试删除与您签出的版本不同的版本所做的更改 - 因为它是一个糟糕的版本,你在其中犯了错误等。

答案 1 :(得分:3)

IBM有一个nice article on substractive merge

  

可以执行减法合并以排除或绕过分支上的不良版本,而无需实际删除不良版本   使用-delete选项进行Cleartool合并将允许用户从上一个已知正常版本合并到同一分支上的新版本,这将排除在标识为坏版本的版本中完成的工作。
  此合并必须从命令行执行,它不会创建合并箭头,可以手动创建箭头。

这适用于文件和目录

但你需要意识到合并是关于文件或目录,而不是目录“及其中的所有内容”。
要递归合并,请查看findmerge

您可以只想合并目录(因为它们总是首先合并,以确定要合并的文件的实际列表!),如此IBM article

% cleartool setview major_vu% cleartool findmerge /vobs/vob1 /vobs/libvob2 –type d \ 
–fversion /main/LATEST –merge

您也可以从LATEST版本的分支或标签进行合并:

findmerge . –fversion /main/rel2_bugfix/LATEST –print
findmerge . –ftag rel2_bugfix_view –whynot –print

注意:在用'-merge -gmerge'替换它之前,-print总是一个好主意,以便预览要合并的内容。但如果涉及目录,则只打印需要合并的“directory X”,而不是文件的确切列表。


对于邪恶的双胞胎,请查看IBM article。案例敏感问题可能是一个真正的痛苦,处理和创建一些邪恶的双胞胎,而你没有意识到...