It's all about the answers!

Ask a question

How does Eclipse\RTC Mark files as changed

Karl Weinert (2.0k52736) | asked May 16 '14, 1:15 p.m.
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

permanent link
Geoffrey Clemm (30.1k33035) | answered May 18 '14, 6:18 p.m.
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

Karl Weinert commented May 27 '14, 12:52 p.m.

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.

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

permanent link
sam detweiler (12.5k6195201) | answered May 16 '14, 1:36 p.m.
I think Load loads everything.. while Accept only applies the changes.

RTC sees changes to files, not the file itself. so, when u do a save, the change set is calculated from the differences. Timestamps don't mean anything.

Karl Weinert commented May 16 '14, 1:46 p.m.

 From my experience, the reload will only update the files that have been changed regardless of which computer they were changed on.  Other files will remain unchanged including the timestamps. And because it is the same workspace it does not have the option to accept.

Your answer

Register or to post 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.