【发布时间】:2011-01-09 23:06:28
【问题描述】:
我的 Clearcase 存储库中有一个文件。我检查并修改了它,然后重新检查。
我还没有做任何事情,比如在我的流/视图中创建基线、rebase 或交付。
我很遗憾对此文件进行了更改——回想起来,我应该撤消结帐。
如何回滚修改? (或撤消,或恢复,或任何正确的命名法。)
【问题讨论】:
我的 Clearcase 存储库中有一个文件。我检查并修改了它,然后重新检查。
我还没有做任何事情,比如在我的流/视图中创建基线、rebase 或交付。
我很遗憾对此文件进行了更改——回想起来,我应该撤消结帐。
如何回滚修改? (或撤消,或恢复,或任何正确的命名法。)
【问题讨论】:
What is described by skwllsp 可以通过使用extended pathnames 在dynamic view 中完成
cd m:/myDynamicView/MyVob/path/to/file
cleartool lsvtree myFile
cleartool checkout -c "cancel co" myFile
copy myFile@@/main/xx myFile
cleartool checkin -nc myFile
xx 是您要恢复的版本号。
但是如果您进行了多次签入,包括一些您想取消的签入,ClearCase 允许您通过 Subtractive Merge
取消之前签入的部分
请参阅 IBM“to remove contributions of some versions”(和 merge man page)
您可以一次从一系列版本中删除所有更改。例如,以下命令会删除主分支上版本 14 到 16 的修订:
- 在 UNIX 系统或 Linux 上:
cleartool merge -graphical -to opt.c -delete -version /main/14 /main/16
- 在 Windows 系统上:
cleartool merge -graphical -to opt.c -delete -version \main\14 \main\16
您也可以一次从一个版本中删除更改。例如,以下命令仅从 opt.c 的版本中删除版本 14 中的更改检出当前视图:
- 在 UNIX 系统或 Linux 上:
cleartool merge -graphical -to opt.c -delete -version /main/14
- 在 Windows 系统上:
cleartool merge -graphical -to opt.c -delete -version \main\14
或者,在上述任何示例中,如果您使用贡献者版本选择器的版本扩展路径,则可以省略 -version 参数。
最后,不做的一件事是rmver。
此命令会不可挽回地破坏信息,这很少是好事。
【讨论】:
rmver。这将使超链接悬空(或删除它们),这可能会损害其他对象的完整性(如完整的 UCM 基线)。如果最新版本没有超链接并且没有被其他对象引用,那么是的,rmver 是一个解决方案。
rmver 有效”......这将导致rmver 将不小心使用,会造成更大的伤害。这就是为什么我更喜欢限制它的使用。
cp。 copy 适用于 Windows。
Clearcase 比仅仅制作一个撤销更改的新版本要好得多! 打开文件上的版本历史记录,找到您错误签入的版本,然后将其销毁(选择要销毁的版本并在“版本”菜单下找到相应的命令)。 如果您想使用命令行,这也是 rmver 所做的。 正如VonC所说,您的这无可挽回地破坏了您的错误。我没有看到它的缺点。
【讨论】:
打开此文件的版本历史记录,然后在编辑器中从版本树中打开文件的正确版本,再次签出文件,将其替换为先前正确版本的内容并签入。不要忘记比较上一个版本和上一个版本。
【讨论】: