【问题标题】:Force workspace update in Plastic SCMPlastic SCM 中的强制工作区更新
【发布时间】:2014-06-27 23:30:07
【问题描述】:

我的工作区状态有问题。 Plastic SCM 给人的印象是我已经提交了所有更改,并且现在已同步到特定的更改集。它没有列出未决的更改。但我知道有些源代码文件不同步。顺便说一下,这些文件在任何忽略列表中。如果我更改了一些不重要的空格,Plastic SCM 会将文件列为待处理文件,并同时显示空格更改之前不同步的实际代码更改。

所以问题是:有没有办法 100% 确保我的工作区与服务器上选定的变更集同步?一些 cm 命令来计算校验和,查找不同步的项目,强制更新,什么?

注意:切换到当前变更集没有帮助。将整个存储库签出到新工作区不是一种选择。

【问题讨论】:

    标签: version-control plasticscm


    【解决方案1】:

    我怀疑您的时间戳没有正确更改,但“其他选项”下有一个名为Compare file contents instead of timestamps when determining "Changed" status 的选项。选中此选项,看看是否不能解决您的问题。

    更新

    实际上,阅读文档我可能对此有误:

    在确定“已更改”状态时比较文件内容而不是时间戳

    控制 Plastic SCM 如何确定源代码控制文件是否具有已更改状态。未设置此选项时,Plastic SCM 使用 文件的时间戳。设置选项时,内容 对时间戳更改的文件进行哈希处理以查看是否确实 改变了。后一种选择较慢但完全准确,而 第一个更快,但可能会在文件实际更改时将文件标记为已更改 不是。

    听起来这只会对文件进行哈希检查如果时间戳已经改变。因此,如果问题是您的文件上的时间戳没有更新,这可能无济于事。您可能想使用 GUI 客户端进行测试,看看这是否能解决您的问题。如果是这样,那么我认为cm 命令也将遵循此设置,因为它们都会检查client.conf 文件的设置。

    【讨论】:

    • 是否也有 cm 选项?
    • 不,您需要更改首选项,然后它将应用于命令行 a 和 GUI。
    【解决方案2】:

    旧线程,但我们遇到了同样的问题。已同步到变更集,没有待处理的变更,但有些文件显然已过时。

    设置变更集本身似乎还不够。设置变更集后,查看工作区,我们发现一些文件仍在使用旧版本(出于某种原因,可能在某些时候有些不同步)。

    TL;DR 在工作区资源管理器中点击“更新工作区”按钮似乎是神奇的“修复”按钮。

    我认为“待定更改”未显示任何更改的原因是文件设置为旧的更改集编号,并且与该过时的更改集没有变化。

    例如工作区位于变更集 100 上,但某处的某个文件设置为变更集 25。没有显示任何更改,因为该文件与其变更集版本 25 相比未更改。但是,点击“更新工作区”会将该文件同步到最新的变更集。 (在本例中不需要为 100;该文件可能上次更新为 unchangeset 75,但自 25 以来仍然更新...我希望这是有道理的;))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多