在Plastic SCM中强制更新工作区

时间:2014-06-27 23:30:07

标签: version-control plasticscm

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

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

注意:切换到当前的变更集并没有帮助。检查整个存储库到新工作区是不可取的。

2 个答案:

答案 0 :(得分:2)

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

<强>更新

实际上,阅读文档我可能错了:

  

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

     

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

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

答案 1 :(得分:1)

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

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

TL; DR在工作区浏览器中单击“更新工作区”按钮似乎是神奇的“解决问题”按钮。

我相信“待更改”未显示任何更改的原因是文件设置为旧的变更集编号,并且与该过期变更集保持不变。

例如工作区位于变更集100上,但某些文件设置为变更集25。未显示任何更改,因为该文件与其变更集版本25保持不变。但是单击“更新工作区”会将该文件同步到最新的变更集。 (在此示例中,该文件不必为100;该文件可以在unchangeset 75的情况下进行了最后更新,但是自25开始就一直进行了更新……我希望这是有道理的;))