有一些派生对象引用一个视图。但是,被引用的视图没有该派生对象。
是否有一种方法来删除那些派生对象(DO)无效/未使用的引用?
(我认为问题的原因是被删除的视图。我们有一些视图有问题,不得不强制删除它们(使用uuid)。然后我们用相同的名称创建新的视图。现在,DO有一个对视图的引用(我看不到uid),但DO不在该视图中使用。我怀疑引用的视图是旧的)
如果它是一个已删除的视图,可以使用:
删除对该视图的所有引用:cleartool rmview -vob /vobs/MyVob -force -uuid 3c2ed44a.eda842f1.a7f8.73:09:e2:c9:12:ac
将/Vob/MyVob替换为使用视图的Vob标签。
并将3c2ed44 .a .eda842f1.a7f8.73:09:e2:c9:12:ac替换为旧的已删除视图uuid。
你可以用:
找到uidcleartool descr -l vob:/vobs/MyVob
后面跟着"如何从视图中删除视图的签出引用"。
然而,如果你提到"我们有一些视图有问题,不得不强制删除它们(使用uuid)",那么cleartool rmview
命令可能不足以取消引用那些DO(派生对象)。
这是ClearCase 7的一个老问题。
该方法(rmview --force --uuid
)用"About rgy_getuuid_by_uuid
failed error ":
例如,
clearmake
可能会在试图访问一个不再存在但具有共享派生对象的视图时提供以下警告:clearmake: Warning: View "ccsvr:c:ccstgviewstempview2.vws" unavailable - This process will not contact the view again for 60 minutes.
如果视图被删除或无法访问,则必须使用
cleartool rmview -uuid
命令删除对视图的引用。
该命令将删除所有挂载的vob中对给定视图的所有引用(有关详细信息,请参阅技术说明1122515):
这里又显示了一个rmview --uuid
。
这是我发现的慢解决方案:我列出了每个vob (cleartool lsdo -recurse
)中的所有DOs,然后列出了视图(cleartool lsprivate -do
)中所有使用的DOs。然后我列出了不在第二个列表中的。我为这些项目写了一个rmdo
脚本。