【发布时间】:2017-10-17 03:58:04
【问题描述】:
四个月前,一位同事在某个分支(例如分支“A”)上仍有目录签出时从文件系统中删除了一个快照视图。现在有些目录已经过时,需要在其他视图中为rmname'd,但这显然不会发生,因为它们仍在分支 A 上签出。
unco 分支 a 上的这些目录最直接的方法是什么?
【问题讨论】:
-
我已编辑我的答案以添加“
rmname -force”选项。
标签: clearcase
四个月前,一位同事在某个分支(例如分支“A”)上仍有目录签出时从文件系统中删除了一个快照视图。现在有些目录已经过时,需要在其他视图中为rmname'd,但这显然不会发生,因为它们仍在分支 A 上签出。
unco 分支 a 上的这些目录最直接的方法是什么?
【问题讨论】:
rmname -force”选项。
标签: clearcase
您可以完全取消注册此视图(即使实际视图已从文件系统中消失)。
见“ClearCase: Is it possible to cancel checkouts not made from your own view?”:
cleartool rmview -force -uuid (uuid_of_the_view) -vob \aVob
这将触发,作为一个副作用,删除任何由该视图签出的文件的签出状态(由其 uuid 引用)在此 vob(-vob 选项)中。
在“How to delete clearcase views created by other users?”查看更多信息:
cleartool lsview -l theViewToRemove # get its uuid
cleartool rmtag -view theViewToRemove
cleartool unregister -view -uuid uuid_of_viewToRemove
您甚至可以使用nuke_view.pl script。
现在有些目录已经过时,需要从其他视图中重新命名,但这显然不会发生,因为它们仍在分支
A上签出。
正如我在“How do delete a file in ClearCase?”中提到的,即使您不取消注册视图,您仍然可以从分支中删除文件,即使它已在另一个分支中签出。
您只需要从命令行执行此操作:
cleartool rmname -force /path/to/file
Eric Schnipke提议in the comments:
cleartool lsview -l theViewToRemove获取视图的UUID然后cleartool rmview -force -uuid (uuid_of_the_view) -vob \aVob 删除视图和有问题的文件版本。 【讨论】:
rmview,它回复“删除了对视图的引用......”但结帐仍然存在。不幸的是,我们的 CC 管理员离开了公司,替代者不会接触 vobs。
cleartool lsview -l theViewToRemove 获取视图的 UUID,然后 (2) cleartool rmview -force -uuid (uuid_of_the_view) -vob \aVob 删除视图和有问题的文件版本。