Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[stellation-res] TClient and Eclipse R3

I've found several issues using the TClient with Eclipse R3, RC1 and later. Notably: * Checkin and checkout no longer reset local Stellation project status to "Unmodified since last checkout". * Merging changes back into the main branch is not possible (because of the previous issue).

The first problem (status is not reset to "unmodified") is occurring because the improved threading model (and other performance enhancments) of R3 causes Eclipse resource change notifications to be batched up until all other pending operations are finished. Previously, the Checkin and Checkout actions would
a) disable Stellation tracking of resource changes,
b) do appropriate transactions with the repository,
c) update local files from the current repository versions (triggering resource change notifications) d) handle those resource change notifications (which should be discarded, in this case) e) re-enable Stellation resource change tracking, so that edits and other changes to managed files
would mark the local image as dirty.

Now, because resource change notifications (triggered in (c) are deferred, by Eclipse, until well after e) completes, step (d) is also occuring after (e), instead of before. Therefore, the resource change notifications caused by overwriting local files from the repository are causing the local image to be marked as dirty, when it should really be marked as "unmodified since last checkout". (Just to make it harder to find, the problem only occurs when autobuilding is ON; since I normally keep autobuilding OFF, the problem
did not bite me earlier).

I have a fix undergoing test (somewhat kludgy: I schedule a "resource tracker enablement" Job to run after the UI and Workspace actions and the autobuild Job (if any) have all completed. This appears to fix the problem, but more testing is needed. I'm also checking for other issues, and attempting to build JUnit tests that effectively exercise the Stellation GUI "Actions" directly. (The problem does not occur under JUnit testing of the stellation.scm.model classes, presumably because those JUnit tests
execute in a somewhat different threading environment.)

Concurrently (yes, that's a thread pun), I'm also adding a "Commit to Main" action, to simplify checking
changes from a personal branch into the main branch.  Details to follow --

- Jim


--
Jim Wright, IBM T.J. Watson Research Center
*** The Stellation project: Advanced SCM for Collaboration
*** http://www.eclipse.org/stellation
*** Work Email: jwright@xxxxxxxxxxxxxx ------- Personal Email: jim.wright@xxxxxxx



Back to the top