【问题标题】:How do I roll back a file checked in to Clearcase?如何回滚签入到 Clearcase 的文件?
【发布时间】:2011-01-09 23:06:28
【问题描述】:

我的 Clearcase 存储库中有一个文件。我检查并修改了它,然后重新检查。

我还没有做任何事情,比如在我的流/视图中创建基线、rebase 或交付。

我很遗憾对此文件进行了更改——回想起来,我应该撤消结帐。

如何回滚修改? (或撤消,或恢复,或任何正确的命名法。)

【问题讨论】:

    标签: clearcase rollback


    【解决方案1】:

    What is described by skwllsp 可以通过使用extended pathnamesdynamic 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
    此命令会不可挽回地破坏信息,这很少是好事。

    【讨论】:

    • 当您说“不可挽回地破坏信息”时,您只是在谈论与最新签到相关的信息(无论如何都是不正确的),对吗?在那种情况下,你为什么说它很少是一件好事?签入毕竟是一个错误,那么删除那些版本的存在有什么害处呢?请分享您的知识。
    • @ArvindhMani 我说的是你想要的任何版本rmver。这将使超链接悬空(或删除它们),这可能会损害其他对象的完整性(如完整的 UCM 基线)。如果最新版本没有超链接并且没有被其他对象引用,那么是的,rmver 是一个解决方案。
    • @ArvindhMani 问题是,虽然它可能适用于您的情况,但您只记得“rmver 有效”......这将导致rmver 将不小心使用,会造成更大的伤害。这就是为什么我更喜欢限制它的使用。
    • @Jerry 改用cpcopy 适用于 Windows。
    • @Jozef 是的,前提是您的版本树是从目标视图(版本检出的地方)启动的
    【解决方案2】:

    Clearcase 比仅仅制作一个撤销更改的新版本要好得多! 打开文件上的版本历史记录,找到您错误签入的版本,然后将其销毁(选择要销毁的版本并在“版本”菜单下找到相应的命令)。 如果您想使用命令行,这也是 rmver 所做的。 正如VonC所说,您的这无可挽回地破坏了您的错误。我没有看到它的缺点。

    【讨论】:

    • @Kathy:你没有看到不利的一面,但这是一个非常非常糟糕的解决方案。唯一一个你永远不会做的事。尽管在这种情况下可能会起作用,但您最好阻止您的用户执行 rmver。曾经。因为它在这里工作意味着有一天他们会在它会破坏所有类型的东西的情况下再次使用它。说真的:不要那样做。
    • FWIW,就我个人而言,我没有权限以这种方式删除文件。
    【解决方案3】:

    打开此文件的版本历史记录,然后在编辑器中从版本树中打开文件的正确版本,再次签出文件,将其替换为先前正确版本的内容并签入。不要忘记比较上一个版本和上一个版本。

    【讨论】:

    • 这是 CC 能做到的最好的吗?哦。 (我是 CC 新手,过去 5 年一直只使用 svn。)
    • 我知道它是一个旧的,但我同意 JXG(过去 6 年我也一直在使用 SVN,而在此之前的几年里我也一直在使用 CVS)...... 是最好的 CC 吗?假设您必须取消更改并且许多目录中的大约 30 多个文件受到影响。为什么它没有“从此签入恢复更改”类型的命令?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2010-09-07
    • 2014-01-05
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    相关资源
    最近更新 更多