28 123
发新话题
打印

[原创] 垃圾元素及视图的清理( 此文章被查看:4999次,被回复:27篇!! )

垃圾元素及视图的清理

主要是垃圾元素清理,其中lost+found原理部分参考了网上流行的一篇中文文档。脚本部分为原创,供大家参考(针对Lost+found中元素如何一次性删除干净)

垃圾视图的清理思路有了部分,待有时间实现。

附件

ClearCase 垃圾配置项及垃圾视图清理.pdf (89.52 KB, 2006-11-14 16:51)

关于附件奖励, 下载次数 136, 使用阶层: 通用 , 推荐星级: , 出售价格: 2 金钱 , 你的购买价格: 2 金钱

垃圾元素及视图的清理




© 本文为 MaxSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

这个比较实用,尤其在维护服务器方面需要做这些操作。



© 本文为 tuohzSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

你写的递归删除lost+found目录下文件的脚本太麻烦了

可以有更容易的方法:
lost+found中的文件会导致Deliver操作出错,所以在Deliver前先检查lost+found中有无文件,如果有,有以下命令删除。

1.切换到lost+found目录,执行Cleartool
E:\myVOB\lost+found>cleartool
cleartool> rmelem -force*.*



注意:在windows下,以上命令必须分开执行,先执行cleartool,再执行rmelem,不能
在一行里执行cleartool rmelem,否则会报错。

以上命令只是删除lost+found最上层目录的文件,并不能嵌套删除lost+found里所有目录及其下面的文件,所以必须重复执行以上命令清空所有子目录。

以下命令可以一次性删除所有目录及子目录下的文件:
c:\lost+found>for %V in (*.*) do cleartool rmelem -force "%V"


2. 如果lost+found中有CheckOut的文件,则先undo checkout文件:

然后用以下命令删除:

find . -exec 'cleartool rmelem "%CLEARCASE_PN%"'




© 本文为 xialeiSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

回复 #4 xialei 的帖子

我刚才又尝试了一下,不行。
for循环仅对当前lost+found目录根下元素进行操作,而因目录被删除而丢失的子元素删除不掉。
同时,删除目录时要加/d参数。
所以,当时没办法只好写脚本实现。您可试试

© 本文为 Max 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

关于删除lost+found里的文件,有没有什么不好的影响!
我都删除了几次了

© 本文为 tzp309 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

xielei的方法是可以的,我也是这样用的
支持一下

© 本文为 rachel_zhyun 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
静似月,各自孤单错弄弦
221.6.29.246 - 江苏省南京市 教育网
SCMLife--致力于做一流得配置管理社区

TOP

送脚本了
没有注释.是rmelem的,使用的时候要小心

用法: perl $0 /path/to/dir  会把dir下的元素rmelem掉,使用前先lsco
复制内容到剪贴板
代码:
#!/usr/env/perl

#filename rmelem.pl

#copy right among, 2007-01-10, scmlife.com

#msn: lifeng29@msn.com

#use : perl rmelem.pl /path/to/dir



$OS="$ENV{'OS'}";

if ($OS=~ m/windows/i)

{

        $nul="NUL";

}

else

{

        $nul="/dev/null";

}



die "error option,please use: $0 pname \n" unless ($#ARGV eq 0)&&(-d $ARGV[0]);

if ($ARGV[0] !~ m/.*(lost\+found)/)

{

        print "***Warnning,you will rmelem not in Lost+found !\nAre you want to continue: Yes or NO ? ";

        chomp($yes=<STDIN>);

        exit 1 if ($yes ne Yes);

}

$cmd1=qq(cleartool ls -r -s -vob_only -nxname $ARGV[0]);

$cmd2=qq(cleartool rmelem -force -c "rmelem by among" );

@filelist=`$cmd1 2>$nul`;

die "no file searched,command exit !!!\n" if ($#filelist eq -1);

print "***Warnning,you will rmelem this element:\n";

print @filelist;

print "***Are you want to continue: Yes or NO ?";

chomp($yes=<STDIN>);

exit 1 if ($yes ne Yes);

for (0..$#filelist)

{

        chomp($file=pop(@filelist));

        $file='"'.$file.'"';

        push @newfilelist,$file;

}

        system qq($cmd2 @newfilelist);

print "Command exec successful! \n";
[ 本帖最后由 among 于 2007-1-11 10:16 编辑 ]
本帖最近评分记录
  • 懂你 金钱 +5 感谢分享 2007-6-7 19:17

© 本文为 among 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
Where are we ?

TOP

for %V in (*.*) do cleartool rmelem -force "%V"

请问%V是什么意思啊?

© 本文为 cissy 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

for %V in (*.*) do cleartool rmelem -force "%V"

这个命令试了一下,发现不可以删除lost+found里面的所有文件哦。。

是不是因为偶得目录层次太多了?

[ 本帖最后由 cissy 于 2007-6-21 15:14 编辑 ]

© 本文为 cissy 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

看来大家讨论会有新的收获,,

© 本文为 tuohz 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

 28 123
发新话题