Hi,
We create a workspace job where we change/update/move all kind of files
We do this in a workspace job so that we get all the changes we make in 1
resource change event.
Without subclipse this works great
with subcblipse this doesnt work because we already get intermediate file
changes like the a move/rename of a dir
this is the stack we get:
Thread [Worker-0] (Suspended (breakpoint at line 200 in
NotificationManager))
NotificationManager.requestNotify() line: 200
Workspace.endOperation(ISchedulingRule, boolean, IProgressMonitor) line:
999
Folder(Resource).refreshLocal(int, IProgressMonitor) line: 1433
OperationManager.endOperation() line: 119
SVNMoveDeleteHook.moveFile(IResourceTree, IFile, IFile, int,
IProgressMonitor) line: 148
MoveDeleteManager.moveFile(IResourceTree, IFile, IFile, int,
IProgressMonitor) line: 87
File(Resource).unprotectedMove(ResourceTree, IResource, int,
IProgressMonitor) line: 1687
File(Resource).move(IPath, int, IProgressMonitor) line: 1358
File(Resource).move(IPath, boolean, IProgressMonitor) line: 1327
WorkspaceFileAccess.moveFile(Path, Path) line: 182
WorkspaceFileAccess.move(String, String) line: 205
EclipseRepository$3.visit(IPersist) line: 496
Form(AbstractBase).acceptVisitorDepthFirst(IPersistVisitor) line: 94
EclipseRepository.updateNode(IPersist, boolean) line: 551
EclipseRepository$2.runInWorkspace(IProgressMonitor) line: 363
EclipseRepository$2(InternalWorkspaceJob).run(IProgressMonitor) line:
38
Worker.run() line: 55
that EclipseRepository$2 is a workspace job
and that should trigger the Workspace.endOperation() but as you can see
if we move a file/dir then svn is triggering a refreshLocal inside our job
that causes a endOperation
and later on a resourceChange event through the NotificationManager.
I guess its the way svn works (all changes to files are done by none eclipse
code) so that it has to do a
refresh() but cant this be done somehow after our job? By doing the refresh
again in a workspace job that
will be executed after ours?
johan
Received on 2008-08-25 11:06:32 CEST