[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[Subclipse-users] SVN 'kills' our Workspace job behavior..

From: Johan Compagner <jcompagner_at_gmail.com>
Date: Mon, 25 Aug 2008 11:06:15 +0200


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.requestNotify() line: 200
    Workspace.endOperation(ISchedulingRule, boolean, IProgressMonitor) line:
    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:
    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?

Received on 2008-08-25 11:06:32 CEST

This is an archived mail posted to the Subclipse Users mailing list.