【发布时间】:2010-08-10 15:22:31
【问题描述】:
我在 ClearCase 中有两个动态视图,据我所知,它们应该是“相等的”。
一个应该查看“Main 分支”,另一个查看其他分支(我们称之为A)。
我进行了从 A 到 Main 的合并(在 Main 视图中),由于某种原因,A 视图中的代码编译了,而 Main 没有。
有没有办法比较意见的差异?
【问题讨论】:
我在 ClearCase 中有两个动态视图,据我所知,它们应该是“相等的”。
一个应该查看“Main 分支”,另一个查看其他分支(我们称之为A)。
我进行了从 A 到 Main 的合并(在 Main 视图中),由于某种原因,A 视图中的代码编译了,而 Main 没有。
有没有办法比较意见的差异?
【问题讨论】:
最简单的方法是在这两个视图上使用外部差异工具(如 Windows 上的 WinMerge 或 BeyondCompare,Unix 或 Windows 上的 KDiff3,...)。
我实际上会创建两个新视图(与两个初始视图具有相同的配置规范),以消除任何“缓存”效果,并从那里开始比较。
完成初始检查后,我将在这两个视图中开始编译,看看其中一个是否仍然无法编译。
不要忘记在合并后将A 合并到Main 不会总是产生相同的文件集。
仅当自 A 开始(或自上次从 A 合并到 Main 以来)在 Main 中没有发生任何演变时,它才会是相同的。
你提到的setcs -current将:
–cur/rent
使 view_server 刷新其缓存并重新评估当前配置规范,该配置规范存储在视图存储目录中的文件
config_spec中。这包括:
- 评估具有非绝对规范的时间规则(例如,现在、星期二)
- 重新评估 –config 规则,可能选择与以前不同的派生对象
- 重新读取包含规则中命名的文件
如果您在配置规范中依赖“包含文件”的版本错误,则第一个 setcs 会将其设置为正确的版本,第二个 setcs 将读取其内容并为其余部分设置正确的版本.
【讨论】:
M:\MyView_onMain 与 M:\MyView_onA 在 Windows 上,或 /view/MyView_onMain 与 /view/MyView_onA 在 Unix 上)。所有这些差异工具都知道如何比较目录。
.contrib 文件等之外,我找不到任何差异。视图会占用太多磁盘空间吗?是否习惯以这种“触发快乐”的方式创建新视图?