How does Eclipse\RTC Mark files as changed
Problem:
The same workspace is being loaded on two computers. (yes I know, not optimal)
Changes are made on computer 1 and checked in.
Then on computer 2 I see the message:
"Some of your projects are out of sync. We recommend you reload these project...."
When the project is reloaded, normally it will just reload the changed file from computer 1 and any files that were changed on computer 2 but all the other files will be left untouched.
The problem I am seeing is that all the files and folders on computer 2 are being reloaded even though none of them have been changed locally.
I verified that all files are being updated because all the time stamps change and the operation takes 2 minutes instead of just a few seconds.
It isn't always 100% consistent, it might be different on different workspaces and usually only happens in one direction (computer 1 to computer 2) but I have seen it happen in reverse on occasion as well.
Any thoughts on what might trigger this?
|
Accepted answer
Geoffrey Clemm (30.1k●3●30●35)
| answered May 18 '14, 6:18 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER edited May 18 '14, 6:18 p.m.
Effectively, a sandbox keeps a modification counter for each workspace loaded into that sandbox. When you perform a modification operation on the workspace (e.g., checkin, accept) in the context of that sandbox, it checks whether that the modification counter for that workspace in the sandbox matches the current modification counter of that workspace. If it doesn't match, then some other process has modified the configuration of the workspace out from underneath this sandbox in some unknown way, and an "out of sync" message is generated. The "resync" operation will scan every loaded file in the sandbox to see if it should be updated (it cannot do a delta update because the current relationship between the loaded files and the workspace is no longer known).
Karl Weinert selected this answer as the correct answer
Comments Thanks Geoffrey,
In regards to "The "resync" operation will scan every loaded file in the sandbox"
Do you happen to know what it looks at when it scans the files in the sandbox?
As far as I can tell nothing has actually been changed in the local workspace.
Geoffrey Clemm
commented May 29 '14, 1:02 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
We'd have to get one of the RTC SCM developers to answer that, but I imagine it is some combination of date stamp, file length, and hash code. But whether or not anything has changed, it has to process every file to check to see if anything has changed.
|
One other answer
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.