3

我们使用带有 15 个 vobs 的 clearcase UCM。

我们cleartool lshistory -all -since "time" -nco vob1/ vob2/src/ vob3/tests/ ...many more...用来检测自上次以来的变化。这给出了正确的结果,但在具有大量历史记录的流上花费的时间太长。

如果流中有“任何变化”但没有详细说明该变化,有没有办法提前返回?一种选择是将 lshistory 限制为单个 vobs,但这看起来并不优雅。我想有更好的方法来做到这一点?

4

2 回答 2

2

与 lshistory 相比,以下建议应该超级快,但它不支持任何通用的“时间”参考,仅来自早期手动保存的条目。它还取决于多站点。

如果您只想检查是否对每个单独的 vobs 进行了任何(本地)更改,您也许可以使用该multitool lsepoch命令将 epoch 编号与之前的编号进行比较。

编辑:由于我没有使用 UCM 的经验,我一开始并没有注意到,但如前所述,这个答案只会考虑整个 vob 的变化,而不是问题所要求的单个流的变化。

于 2011-05-07T04:17:24.223 回答
2

由于巨大的许可成本,多站点当然不是一种选择。
您不能在不使其 adminvob/pvob 也成为多站点的情况下创建一个 vob 多站点,这反过来意味着与所述 adminvob 相关联的其他 vobs,虽然并不总是多站点,但也需要支付多站点许可证!.

根据您所追求的信息级别,对快照视图进行简单且定期的更新就足以检测/更新任何更改,并在update.20xx-yy-zzT123456-0x.updt文件中显示结果。

您可以设置一个 cron 作业来负责:

  • 更新快照 UCM 视图(在要监视的流上设置,而不是在对任何流进行任何修改后的 lshistory)
  • 连接各种updt文件的结果。

每当您需要检查更改时,请读取/解析您的作业生成的串联结果(并让它重置/创建新的串联结果)。

这是一些脚本工作,但对于大型历史,这将比缓慢的 ' lshistory -all' 高效得多。

于 2011-05-07T10:05:51.820 回答