【问题标题】:ClearCase: How to Uncheckout Files in Shapshot View Deleted From File SystemClearCase:如何在从文件系统中删除的快照视图中取消签出文件
【发布时间】:2017-10-17 03:58:04
【问题描述】:

四个月前,一位同事在某个分支(例如分支“A”)上仍有目录签出时从文件系统中删除了一个快照视图。现在有些目录已经过时,需要在其他视图中为rmname'd,但这显然不会发生,因为它们仍在分支 A 上签出。

unco 分支 a 上的这些目录最直接的方法是什么?

【问题讨论】:

  • 我已编辑我的答案以添加“rmname -force”选项。

标签: clearcase


【解决方案1】:

您可以完全取消注册此视图(即使实际视图已从文件系统中消失)。

见“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

  • (1)cleartool lsview -l theViewToRemove获取视图的UUID然后
  • (2) cleartool rmview -force -uuid (uuid_of_the_view) -vob \aVob 删除视图和有问题的文件版本。

【讨论】:

  • 我跑了rmview,它回复“删除了对视图的引用......”但结帐仍然存在。不幸的是,我们的 CC 管理员离开了公司,替代者不会接触 vobs。
  • @ThomasMcLeod 不会触及 VOB。只有与 vob 关联的元数据(即带有该 vob 结帐的视图列表)。但是您必须是管理员才能完成该命令(即使您已经执行了该命令,管理员也可以重试)。
  • @ThomasMcLeod 我向你保证,这是删除这些结帐的方法,我已经做了无数次了。但是,如果这是不可能的,我提到的命令行替代方案也可以:即使文件已经在其他分支中签出,您也可以对其进行 rmname。
  • 以下内容对我来说很有吸引力:(1) cleartool lsview -l theViewToRemove 获取视图的 UUID,然后 (2) cleartool rmview -force -uuid (uuid_of_the_view) -vob \aVob 删除视图和有问题的文件版本。
  • @EricSchnipke 谢谢。我已将您的评论包含在答案中以提高知名度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 2017-08-20
相关资源
最近更新 更多