diff options
author | Michael Valenta | 2004-06-08 20:27:23 +0000 |
---|---|---|
committer | Michael Valenta | 2004-06-08 20:27:23 +0000 |
commit | b3d5edbac1fcaa74ed74d30f40b32a485bd3ae48 (patch) | |
tree | 6f918515335833ff974802040e2b1904bfa7dc4b /bundles/org.eclipse.team.cvs.core/src/org/eclipse/team | |
parent | 06ecf4a7805bcf6fa88903c6918ce80647fc2b2a (diff) | |
download | eclipse.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')
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 |