Clearcase 中删除未修改元素的分支的命令是什么(该分支中元素的版本为“0”)?
2 回答
您可以简单地删除该元素的版本 0(我在此处详述)。
这将删除关联的分支。
cleartool rmver file@@/main/aBranch/0
您需要“ cleartool find
”所有版本为 0(且没有版本 1)的元素,以及rmver
那些版本为 0。
对于给定的分支,这将返回所有要删除的版本:
cleartool find -type f -version "version(.../blah/LATEST)&&version(.../blah/0)" -print
您可以将其与 exec 指令结合使用:
# on Windows:
cleartool find ... -exec "cleartool rmver --force \"%CLEARCASE_XPN%\"
# on Unix:
cleartool find ... -exec 'cleartool rmver --force "$CLEARCASE_XPN\"'
小心rmver
,这是一个破坏性操作,所以在执行完整find -exec rmver
命令之前请仔细测试!
George F. Frazier的“ Purging Zero-Version-Only Elements in ClearCase ”一文中提到了另一种方法:
你需要清除你对那些麻烦实体的看法。
运行以下命令以查找所有零版本元素:
cleartool find -avobs -branch'{
brtype(mybranch)&&!
(version(.../mybranch/1))}'
-print > c:\files.txt
这将找到所有没有版本 1 的元素
mybranch
(如果您仔细阅读,您会注意到如果您删除了已经具有大于或等于 2 版本的元素的 1 版本,它不会做正确的事情 - 这是不过这种情况很少见)。
完成后,只需使用rmbranch
核对元素(确保你知道你在这里做什么!)。
有很多方法可以做到这一点;因为我运行 MKS 工具包,所以我从命令窗口执行以下命令:
cleartool rmbranch -f 'cat c:\files.txt'
Tamir 建议使用触发器来自动删除版本 0 ,如IBM Rational ClearCase: The Ten Best triggers中列出的,在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
这对于将来撤消签出留下版本 0 的情况很有用。
rmver won't work.
/home/ccadmin $ cleartool rmver -force ./VaREngine/Makefile@@/main/nz_mig/nz_relOne/0 cleartool: Error: Cannot delete version zero without deleting branch: "./VaREngine/Makefile".