Reputation: 4492
I'm having trouble with the status of my workspace. Plastic SCM gives the impression that I have committed all changes and am now synchronized to a specific changeset. It lists no pending changes. But I know that some source code files are out of sync. Those files are not on any ignore list by the way. If I change some unimportant whitespace, Plastic SCM will list the file as pending and will show both the whitespace change and the actual code change which was out of sync before.
So the question is: Is there a way to make 100% sure that my workspace is in sync with the selected changeset on the server? Some cm command to calculate checksums, find desynced items, force updating, anything?
Note: Switching to the current changeset doesn't help. Checking out the entire repository to a new workspace is not an option.
Upvotes: 2
Views: 4162
Reputation: 687
Old thread, but we ran into the same kind of issue. Synchronized to a changeset, no pending changes, yet some files obviously out of date.
Setting the changeset itself didn't seem to be enough. Once you have set that changeset, Looking at the workspace we found some files were using older versions still (for some reason, probably something got out of sync at some point).
TL;DR hitting the "Update Workspace" button in the Workspace Explorer seems to be the magic "fix things" button.
I believe the reason "pending changes" doesn't show any changes is that the files are set to an old changeset number and are unchanged from that out-of-date changeset.
e.g. workspace is on changeset 100, but some file somewhere is set to changeset 25. There are no changes shown because that file is Unchanged from its changeset version 25. However hitting "Update Workspace" will synchronize up that file to the latest changeset. (it doesn't need to be 100 in this example; that file could have been last updated unchangeset 75, but was still updated since 25... I hope this made sense ;) )
Upvotes: 1
Reputation: 19872
I suspect your timestamps are not being changed properly, but there is an option under "Other Options" called Compare file contents instead of timestamps when determining "Changed" status
. Check this option and see if that doesn't solve your problem.
UPDATE
Actually, reading the documentation I may have been wrong about this:
Compare files contents instead of timestamps when determining "Changed" status
Controls how Plastic SCM determines whether a source-controlled file has Changed status. When this option is not set, Plastic SCM uses the timestamps of the files. When the option is set, the content of the files that have a changed timestamp is hashed to see if has really changed. The latter option is slower but completely accurate, while the first is faster but may mark a file as changed when it actually is not.
It sounds like this will only do a hash check of the file if the timestamp has already changed. So if the problem is that the timestamps are not updating on your files, this might not help. You might want to test with the GUI client and see if this solves your problem. If it does, then I think the cm
command will also obey this setting as they both check the client.conf
file for settings.
Upvotes: 2