【问题标题】:Reverse Changset of an activity in ClearcaseClearcase 中活动的反向变更集
【发布时间】:2018-11-22 22:04:22
【问题描述】:

我有一个开发团队发布的要求,以撤消给定 UCM 活动中的所有更改。约束是我们没有删除权限。这意味着我知道我可以做一个 lsactivity 来列出活动中的所有元素及其各自的版本,然后在简单的世界中就可以删除这些版本。

但 SCM 政策不允许我们删除/rmver 任何内容。所以我只剩下向后合并 1 个版本。意思是让我们说我已将 a.java 的第 5 版签入到活动中。我认为实现此目的的一种方法是找到版本 4(使用 -predecessor)并将此版本 4 盲复制为版本 6。假设这次活动中每个文件只有一个版本。如果一个文件通过一个活动签入了多个版本,这会更复杂,所以我们暂时忽略它。

任何其他想法或我的方法是否行得通?

【问题讨论】:

  • 非常感谢 Tamir,虽然我会编写自己的 (ANT) 脚本,但我得到了我需要的东西,我想 merge -delete 会为我解决问题.我会在几天后发布我的结果。
  • merge -delete 为我工作。干杯

标签: clearcase


【解决方案1】:

一种更稳健的方法是:

  • 列出活动中的所有文件
  • 对于每个文件,查找最旧的版本
  • 进行否定合并,或subtractive merge

可以执行减法合并以排除或绕过分支上的错误版本,而无需实际删除错误版本。
使用 -delete 选项的 Cleartool 合并将允许用户从最后一个已知的良好版本合并到同一分支上的新版本,该分支不包括在识别为坏版本的版本中完成的工作。

这将符合您现有的 SCM 政策。

这就是 Tamir 提到的 cset.pl 脚本的本质,正如我在“Clearcase: how to rollback all changes on specific branch?”中解释的那样

ccperl cset.pl -undo myActivity

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多