【问题标题】:Why do clearcase static views not update checked out files?为什么 clearcase 静态视图不更新签出的文件?
【发布时间】:2014-05-01 12:13:01
【问题描述】:

我有一个静态视图,其中包含一些我正在处理的已签出文件。其他人签入了一堆我想添加到我的视图中的更改。所以,我在我的视图上运行更新。事实证明,他们更改了我已签出的文件。现在我的视图只保留了部分更新,甚至可能无法编译,直到我弄清楚我必须手动合并哪个签出文件。

我知道我可以预订结帐,但这会阻止其他开发人员签入他们已完成的东西。

根据:http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_update.htm

更新不适用于检出到当前视图的文件或目录。

所以,它似乎正在按照 atria/rational/IBM 的人们希望它工作的方式工作。我不明白为什么会这样。

有什么方法可以更新我的静态视图并自动将更改合并到我签出的文件中?

【问题讨论】:

    标签: clearcase


    【解决方案1】:

    有什么方法可以更新我的静态视图并自动将更改合并到我签出的文件中?

    并非如此,因为签出的文件是在本地修改的文件,cleartool update 非常努力地不触及任何本地文件。

    您签出的文件由element * CHECKEDOUT 选择规则选择,这意味着任何更新都不会更新它(它已经选择了正确的版本)。

    您需要签入这些文件(触发合并,类似于“To merge the latest version to a hijacked file”),然后再次签出。

    但这并不总是可行的,因为它会使正在进行的工作对同一分支中的其他视图可见(签入)。

    唯一的其他解决方案是计算签入版本和签出文件之间的补丁,并应用该补丁cleartool lsco -all -s -cview | xargs cleartool diff -diff,很难区分签出版本和最新版本。

    【讨论】:

    • 我明白你在说什么,但我不明白该命令应该如何工作。我得到 lsco 来查找签出的文件,但我没有得到 diff 命令来进行合并。我认为 xargs 命令会将一个文件放在 diff 命令的末尾? Diff 需要 2 个文件名来区分,对吗?我在 Windows 中工作,所以没有 xargs,但我可以执行“for /f %i in ('cleartool lsco -all -s -cview') do @cleartool diff -diff %i”。该差异命令吐出“cleartool:错误:必须提供至少两个对象进行比较”。是否有一个命令可以在办理登机手续时执行相同的操作?
    • @DanielKnueven “我没有 diff 命令来进行合并”:它不是用来进行合并的,它是用来计算你必须应用的补丁的。困难在于找到正确的版本(CHECKEDOUT vs. LATEST)以区分它们。关于 xargs,您可以在 Windows(不需要 Cygwin)上使用 Gnu 在 Windows 上使用所有 Unix 命令:github.com/bmatzelle/gow/wiki
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    相关资源
    最近更新 更多