如何在 UCM 快照 View 中加载旧版本的目录?在我们的项目中,一位开发人员将未编译和不可编译的代码 checkin 到 ClearCase。其他开发人员更新了她的观点,然后他没有编译项目,因为以前的开发人员未编译代码。因此开发人员只想获取目录的先前版本。如何在快照 View 中仅针对特定目录执行此操作?
最佳答案
第一种可能性是尝试选择要恢复的子目录的正确版本,例如:
element /path/to/directory /main/[branch]/[version]
但这显然是错误的,因为:
快照 View 中不支持扩展路径名,如本 SO question 中所述。
仅选择目录是不够的(文件仍会被选为流上可用的最新版本!)
无论如何,这需要在配置规范中仔细添加,因为:
- 您无法在配置规范中的任何位置添加选择规则(元素...):
- 如果您将该规则放在最后,它将被忽略(因为之前的选择规则首先被选择)
- 如果您将其放在开头,它将一直工作到下一次出现“
setcs -stream
”(或下次您按下“与流同步”时)。此时,将重新生成 UCM View (快照或动态)的配置规范(根据流的配置)并覆盖您的自定义规则。
一个可能的解决方案是使用基于时间的规则
修改快照 View 的配置规范
(它修改了特殊版本标签LATEST
的含义;该规则从分支中选择特定时间之前创建的最后一个版本;
请参阅“cleartool man config_spec
”):
# Add the following temporary rule only for your sub-directory and below
# (hence the '...')
element /aVob/myComponent/mySubDirectory/... .../STREAM_NAME/LATEST -time dd-Month-yyyy
element "[02945650fb1411d68504000180bdc4b6=\aVob]/myComponent/..." .../STREAM_NAME/LATEST
element "[02945650fb1411d68504000180bdc4b6=\aVob]/myComponent/..." FOUNDATION_BASELINE -mkbranch STREAM_NAME
element "[02945650fb1411d68504000180bdc4b6=\aVob]/myComponent/..." /main/0 -mkbranch STREAM_NAME
刚刚在快照 UCM View 中进行了测试:它有效。
将日期格式调整为您需要将该子目录恢复到正确状态的日期和时间。
关于清除案例 : Loading Older Version of a specific Directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/634509/