ClearCase仅删除视图专用文件

时间:2013-04-04 12:44:34

标签: clearcase

是否有任何仅删除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删除也会删除重叠的文件。

1 个答案:

答案 0 :(得分:3)

你是对的,这两个方面都不会起作用:

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

cleartool lsprivate | grep -v“eclipsed”| xargs rm -v

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

lsprivate单独列出与任何其他私人文件一样的重叠文件:

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的结果。