[
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