在ClearCase中比较视图

4
我在ClearCase中有两个动态视图,据我所知,它们应该是“相等”的。其中一个视图应该查看“Main分支”,另一个视图查看其他分支(我们称其为A)。
我在Main视图中从A合并了代码到Main,并且出现了这样的情况:A视图中的代码可以编译,而Main视图中不能。是否有一种方法来比较这些视图之间的差异?
1个回答

1

最简单的方法是在这两个视图上使用外部差异工具(如Windows上的WinMerge或BeyondCompare,Unix或Windows上的KDiff3等)。

实际上,我会创建两个新视图(与两个初始视图相同的配置规范),以消除任何“缓存”效应,并从那里开始比较。
一旦完成了初始检查,我会在这两个视图中开始编译,并查看它们中是否有一个仍无法编译。

不要忘记,将A合并到Main并不总是会导致合并后的文件集相同。
只有在自A开始(或自上次从A合并到Main以来)没有在Main中发生任何演变时才会相同。


你提到的setcs -current将会:

–cur/rent

导致视图服务器刷新其缓存并重新评估当前配置规范,该规范存储在视图存储目录中的文件config_spec中。这包括:
  • 使用非绝对规范(例如,现在,星期二)评估时间规则
  • 重新评估-config规则,可能选择与之前不同的派生对象
  • 重新读取包含规则中命名的文件

如果您在配置规范中依赖于错误版本的“包含文件”,则第一个setcs会将其设置为正确版本,第二个setcs会读取其内容并设置其余的正确版本。


我该如何使用KDiff3来处理这个问题,因为这些文件在同一个位置下,只是以不同的视图呈现? - Amir Rachum
@Amir:如果这些文件在不同的(动态)视图下,那就意味着有两个不同的路径(Windows 上的 M:\MyView_onMain vs. M:\MyView_onA 或 Unix 上的 /view/MyView_onMain vs. /view/MyView_onA)。所有这些差异工具都知道如何比较目录。 - VonC
差异没有帮助 - 我找不到除了“.contrib”文件之外的任何差异。视图会占用很多磁盘空间吗?创建新视图是否习惯于如此“容易触发”的方式? - Amir Rachum
@Amir:动态视图不占用空间。这就是动态视图的优点:网络访问。您可以创建任意数量的动态视图,而不必担心磁盘空间。请参见https://dev59.com/lHA85IYBdhLWcg3wJf8Z#2925378了解动态视图和快照视图之间的区别。 - VonC
@Amir:你在“Main”视图上遇到了什么编译错误? - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接