用于删除具有"0"版本的Clearcase元素的分支的命令

Bha*_*kar 5 clearcase

Clearcase中删除未修改元素分支的命令是什么(该分支中Element的版本为"0")?

Von*_*onC 7

您只需删除该元素的版本0(我在此处详述).

这将删除相关的分支.

cleartool rmver file@@/main/aBranch/0
Run Code Online (Sandbox Code Playgroud)

您需要" cleartool find"版本为0(并且没有版本1)的所有元素,以及rmver那些版本0.
对于给定的分支,这将返回要删除的所有版本:

cleartool find -type f -version "version(.../blah/LATEST)&&version(.../blah/0)" -print
Run Code Online (Sandbox Code Playgroud)

您可以将它与exec指令结合使用:

# on Windows:
cleartool find ... -exec "cleartool rmver --force \"%CLEARCASE_XPN%\"
# on Unix:
cleartool find ... -exec 'cleartool rmver --force "$CLEARCASE_XPN\"'
Run Code Online (Sandbox Code Playgroud)

小心rmver,这是一个破坏性的操作,所以在执行完整find -exec rmver命令之前要仔细测试!


另一种方法在George F.Frazier的文章" 清除ClearCase中的零版本元素 "一文中提到:

你需要清除你对那些麻烦实体的看法.
运行以下命令以查找所有零版本元素:

cleartool find -avobs -branch'{
    brtype(mybranch)&&!
    (version(.../mybranch/1))}' 
     -print > c:\files.txt 
Run Code Online (Sandbox Code Playgroud)

这将找到没有版本1的所有元素mybranch(如果你仔细阅读,你会注意到如果你删除了已经有大于或等于2的版本的元素的1版本,它就不会做正确的事 - 这是虽然罕见的情况.
一旦完成,这只是rmbranch用来核对元素的问题(确保你知道你在这里做了什么!).
有很多方法可以做到这一点; 因为我运行MKS工具包,所以我从命令窗口执行以下命令:

cleartool rmbranch -f 'cat c:\files.txt' 
Run Code Online (Sandbox Code Playgroud)

Tamir 建议触发器自动删除版本0,如IBM Rational ClearCase中所列:十个最佳触发器,在Empty Branch部分下.

cleartool mktrtype -c "Automatically remove empty branch" -element -all -postop uncheckout -execwin "ccperl \\mw-ddiebolt\triggers\test_empty_branch.bat" REMOVE_EMPTY_BRANCH
Run Code Online (Sandbox Code Playgroud)

这对于撤销结帐离开版本0的未来情况很有用.