Fixed interruption of Auto Build by RefreshStatusCacheSchedulingRule#70
Fixed interruption of Auto Build by RefreshStatusCacheSchedulingRule#70HBuender wants to merge 2 commits into
Conversation
Referring to the discussion (https://groups.google.com/forum/#!topic/subclipse/Ntbl_SfxUrg) a fix is provided to avoid the interruption of the auto build process by the RefreshStatusCacheSchedulingRule. By falling back to a MultiRule, the auto build is finished before the status cache refresh is triggered. Signed-off-by: HBuender <hendrik.buender@googlemail.com>
|
Isn't the solution to this problem to wrap the process that modifies a lot of files in the Workspace in a WorkspaceModifyOperation so that the "Refresh SVN status cache" job will only be triggered once, at the end? |
| } | ||
|
|
||
| private class RefreshStatusCacheSchedulingRule implements ISchedulingRule { |
There was a problem hiding this comment.
If we do go back to using MultiRule then we should remove the private RefreshStatusCacheSchedulingRule class, as it will be no longer used.
| SVNProviderPlugin.broadcastModificationStateChanges(resources); | ||
| } | ||
| } | ||
| }, new RefreshStatusCacheSchedulingRule(MultiRule.combine(projectArray)), false); |
There was a problem hiding this comment.
This change is basically undoing the 1a8bed9 change, which was made so that it would still be possible to save file changes in a project while a long running status cache update was going on. IMO, this fix needs to be done in a way that does not lose that functionality.
When scheduling status cache refresh job use a scheduling rule that prevents
other status cache refresh jobs from running at the same time for the same
project (for example, if some tool is making changes in the workspace without
wrapping the changes in a WorkspaceModifyOperation), but does not lock the
project (i.e., does not prevent saving project changes).
|
Note that the 4.3.0 release includes a different approach to this by introducing a preference to toggle off this status refresh. Perhaps that will be the solution to use since it seems like there are otherwise conflicting requirements here. |

Referring to the discussion
(https://groups.google.com/forum/#!topic/subclipse/Ntbl_SfxUrg) a fix is
provided to avoid the interruption of the auto build process by the
RefreshStatusCacheSchedulingRule.
By falling back to a MultiRule, the auto build is finished before the
status cache refresh is triggered.
Signed-off-by: HBuender hendrik.buender@googlemail.com