【问题标题】:ClearCase delete view private files onlyClearCase 仅删除查看私有文件
【发布时间】:2023-04-04 12:35:01
【问题描述】:

在 CC 动态视图中是否有只删除查看私人文件的方法。在我看来有一堆黯然失色的文件和查看私有文件。我只需要删除查看私有文件并保留已签出和已消失的文件。

我试过关注 -

cleartool ls -r | grep -v eclipsed | grep -v checkedout | xargs rm -v

但看起来黯淡的文件用cleartool ls 列出了两次。所以它也删除了黯淡的文件:(

cleartool ls -r 在动态视图中为eclipsed 文件生成两个输出。

src.mk
src.mk@@ [eclipsed]

所以使用cleartool ls -rec | grep -v "Rule:" | grep -v "eclipsed" | grep -v "-->" | xargs rm -v 删除也会删除重叠的文件。

【问题讨论】:

  • cleartool lsprivate 有什么问题?
  • @mouviciel 它也应该可以工作。我已将其添加到答案中。
  • @mouviciel "cleartool lsprivate" 也列出了黯淡的文件。

标签: clearcase


【解决方案1】:

你是对的,这两种方法都不行:

 cleartool ls -rec | grep -v "Rule:" | grep -v "eclipsed" | grep -v "-->"  | xargs rm -v

   cleartool lsprivate | grep -v "黯然失色" | xargs rm -v

来源:我在“Command to find all view private files in the current directory recursively”的旧答案。

lsprivate 单独列出了 eclipsed 文件,就像任何其他私人文件一样:

M:\yourDynView\yourVob\aDir\>ct lsprivate

M:\yourDynView\yourVob\aDir\aFile.vsd
M:\yourDynView\yourVob\aDir\aPrivateFile

但是,lsprivate -l 列表两次覆盖文件:

M:\yourDynView\YourVob>ct lsprivate -long

view private object    M:\yourDynView\yourVob\aDir\aFile.vsd
file element           M:\yourDynView\yourVob\aDir\aFile.vsd@@ [eclipsed]
view private object    M:\yourDynView\yourVob\aDir\aPrivateFile

所以你需要三遍

  • 一个生成cleartool lsprivate -l
  • 一个删除任何行上面包含eclipsed的行
  • 读取该文件并删除该文件中列出的剩余私有文件

第二步可能是(在this thread 之后进行松散测试)

gawk "{if ((NR!=1)&&($0!~/eclipsed/)) {if ($lastlin!~/eclipsed/) {print astlin};lastlin=$0} } END{print lastlin} " s

使用 's' 包含cleartool lsprivate -l 的结果的文件。

【讨论】:

  • "cleartool ls -rec | grep -v "Rule:" | grep -v "eclipsed" | grep -v "-->" | xargs rm -v" 不起作用。我已经更新了上面的解释。
  • @LOK 和 cleartool lsprivate | grep -v "eclipsed" | xargs rm -v 我在答案中提到作为替代方案?这样会更好吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-31
相关资源
最近更新 更多