【发布时间】:2016-04-27 02:08:14
【问题描述】:
Clearcase 中删除未修改元素的分支的命令是什么(该分支中元素的版本为“0”)?
【问题讨论】:
-
我已经编辑了我的答案以包含另一种方法,基于
rmbranch而不是rmver。
标签: clearcase
Clearcase 中删除未修改元素的分支的命令是什么(该分支中元素的版本为“0”)?
【问题讨论】:
rmbranch 而不是rmver。
标签: clearcase
您可以简单地删除该元素的版本 0(即I detail here)。
这将删除关联的分支。
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, this is a destructive operation,所以在执行完整的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
这将在
mybranch上找到所有没有版本 1 的元素(如果您仔细阅读,您会发现如果您删除了已经具有大于或等于 2——虽然这种情况很少见)。
完成后,只需使用rmbranch对元素进行核攻击(确保您知道自己在这里做什么!)。
有很多方法可以做到这一点;因为我运行 MKS 工具包,所以我从命令窗口执行以下操作:
cleartool rmbranch -f 'cat c:\files.txt'
Tamir suggests automatically remove version 0 的触发器,在 Empty Branch 部分下的IBM Rational ClearCase: The ten best triggers 中列出。
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 不起作用。
/home/ccadmin $ cleartool rmver -force ./VaREngine/Makefile@@/main/nz_mig/nz_relOne/0 cleartool:错误:无法删除版本零而不删除分支:“./VaREngine/Makefile”。
【讨论】:
cleartool rmbranch -f.