Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2004-06-08 20:27:23 +0000
committerMichael Valenta2004-06-08 20:27:23 +0000
commitb3d5edbac1fcaa74ed74d30f40b32a485bd3ae48 (patch)
tree6f918515335833ff974802040e2b1904bfa7dc4b /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team
parent06ecf4a7805bcf6fa88903c6918ce80647fc2b2a (diff)
downloadeclipse.platform.team-b3d5edbac1fcaa74ed74d30f40b32a485bd3ae48.tar.gz
eclipse.platform.team-b3d5edbac1fcaa74ed74d30f40b32a485bd3ae48.tar.xz
eclipse.platform.team-b3d5edbac1fcaa74ed74d30f40b32a485bd3ae48.zip
Bug 65229 M9: Cleaning Output Folders....
Diffstat (limited to 'bundles/org.eclipse.team.cvs.core/src/org/eclipse/team')
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java11
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java7
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java6
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java9
4 files changed, 28 insertions, 5 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java
index 2d2496a5e..bbd1274d1 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/EclipseSynchronizer.java
@@ -1438,15 +1438,16 @@ public class EclipseSynchronizer implements IFlushOperation {
try {
beginOperation();
- if (indicator == getDirtyIndicator(resource)) {
- return;
+ if (getSyncInfoCacheFor(resource).cachesDirtyState()) {
+ if (indicator == getDirtyIndicator(resource)) {
+ return;
+ }
+ getSyncInfoCacheFor(resource).setDirtyIndicator(resource, indicator);
}
if (Policy.DEBUG_DIRTY_CACHING) {
debug(resource, indicator, "adjusting dirty state"); //$NON-NLS-1$
- }
-
- getSyncInfoCacheFor(resource).setDirtyIndicator(resource, indicator);
+ }
IContainer parent = resource.getParent();
if(indicator == NOT_DIRTY_INDICATOR) {
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java
index 8545b1f6b..9292f738a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SessionPropertySyncInfoCache.java
@@ -479,4 +479,11 @@ import org.eclipse.team.internal.ccvs.core.util.SyncFileWriter;
throw CVSException.wrapException(e);
}
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#cachesDirtyState()
+ */
+ public boolean cachesDirtyState() {
+ return true;
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java
index daacebc7c..bb1aba89a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SyncInfoCache.java
@@ -140,4 +140,10 @@ import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
* @return boolean
*/
/*package*/ abstract boolean isDirtyCacheFlushed(IContainer resource) throws CVSException;
+
+ /**
+ * Return whether the cache also caches dirty state or recomputes it
+ * each time it is requested.
+ */
+ public abstract boolean cachesDirtyState();
}
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java
index 93987fa5e..531065ba2 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/SynchronizerSyncInfoCache.java
@@ -224,6 +224,15 @@ import org.eclipse.team.internal.ccvs.core.util.Util;
// We don't cache the dirty count for folders because it would cause
// resource delta's in the decorator thread and possible deadlock.
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.team.internal.ccvs.core.resources.SyncInfoCache#cachesDirtyState()
+ */
+ public boolean cachesDirtyState() {
+ // We don't cache the dirty count for folders because it would cause
+ // resource delta's in the decorator thread and possible deadlock.
+ return false;
+ }
/*package*/ void flushDirtyCache(IResource container) throws CVSException {
// Dirty state is not cached

Back to the top