git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[EGIT PATCH 1/5] Remove the pointless GitProjectData resource change listener

From
Shawn O. Pearce <spearce@spearce.org>
Date
Aug 6, 2008, 03:09 UTC
Message-ID
<1217992180-5697-2-git-send-email-spearce@spearce.org>
In-Reply-To
<1217992180-5697-1-git-send-email-spearce@spearce.org>

Apparently on any IResourceChangeEvent.POST_CHANGE we just burn some CPU time and generate some garbage for the GC to clean out later. I cannot see a reason why this code is still here. My memory says we did this in the past to notify the resource decorator that it needs to update, or we used it for our cache tree invalidation.

Since this code has no side effect other than to waste time we can safely remove it, and cut our project down a little bit.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 .../spearce/egit/core/project/GitProjectData.java  |   64 --------------------
 1 files changed, 0 insertions(+), 64 deletions(-)
diff --git a/org.spearce.egit.core/src/org/spearce/egit/core/project/GitProjectData.java b/org.spearce.egit.core/src/org/spearce/egit/core/project/GitProjectData.java
index 8754bd1..3d5424c 100644
--- a/org.spearce.egit.core/src/org/spearce/egit/core/project/GitProjectData.java
+++ b/org.spearce.egit.core/src/org/spearce/egit/core/project/GitProjectData.java
@@ -29,8 +29,6 @@ import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceChangeEvent;
 import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.Preferences;
@@ -61,10 +59,6 @@ public class GitProjectData {
 		@SuppressWarnings("synthetic-access")
 		public void resourceChanged(final IResourceChangeEvent event) {
 			switch (event.getType()) {
-			case IResourceChangeEvent.POST_CHANGE:
-				projectsChanged(event.getDelta().getAffectedChildren(
-						IResourceDelta.CHANGED));
-				break;
 			case IResourceChangeEvent.PRE_CLOSE:
 				uncache((IProject) event.getResource());
 				break;
@@ -182,16 +176,6 @@ public class GitProjectData {
 		Activator.trace("(GitProjectData) " + m);
 	}
 
-	private static void projectsChanged(final IResourceDelta[] projDeltas) {
-		for (int k = 0; k < projDeltas.length; k++) {
-			final IResource r = projDeltas[k].getResource();
-			final GitProjectData d = get((IProject) r);
-			if (d != null) {
-				d.notifyChanged(projDeltas[k]);
-			}
-		}
-	}
-
 	private synchronized static void cache(final IProject p,
 			final GitProjectData d) {
 		projectDataCache.put(p, d);
@@ -380,54 +364,6 @@ public class GitProjectData {
 		}
 	}
 
-	private void notifyChanged(final IResourceDelta projDelta) {
-//		final Set affectedMappings = new HashSet();
-		try {
-			projDelta.accept(new IResourceDeltaVisitor() {
-				public boolean visit(final IResourceDelta d)
-						throws CoreException {
-					final int f = d.getFlags();
-					IResource res = d.getResource();
-					IResource r = res;
-					if ((f & IResourceDelta.CONTENT) != 0
-							|| (f & IResourceDelta.ENCODING) != 0
-							|| r instanceof IContainer) {
-						String s = null;
-						RepositoryMapping m = null;
-
-						while (r != null) {
-							m = getRepositoryMapping(r);
-							if (m != null) {
-								break;
-							}
-
-							if (s != null) {
-								s = r.getName() + "/" + s;
-							} else {
-								s = r.getName();
-							}
-
-							r = r.getParent();
-						}
-
-						if (m == null) {
-							return false;
-						} else if (s == null) {
-							return true;
-						}
-					}
-					return false;
-				}
-			});
-		} catch (CoreException ce) {
-			// We are in deep trouble. This should NOT have happend. Detach
-			// our listeners and forget it ever did.
-			//
-			detachFromWorkspace();
-			Activator.logError(CoreText.GitProjectData_notifyChangedFailed, ce);
-		}
-	}
-
 	private File propertyFile() {
 		return new File(getProject()
 				.getWorkingLocation(Activator.getPluginId()).toFile(),
-- 
1.6.0.rc1.250.g9b5e2
Previous: Shawn O. PearceNext: Shawn O. Pearce
Message 2 of 6 in “Support linked resources in repositories”
  1. 0/5 Support linked resources in repositoriesShawn O. Pearce, Aug 6, 2008
  2. 1/5 Remove the pointless GitProjectData resource change listenerShawn O. Pearce, Aug 6, 2008
  3. 2/5 Don't crash the decorator update loop when resources are deletedShawn O. Pearce, Aug 6, 2008
  4. 3/5 Fix RepositoryMapping.getRepoRelativePath to honor linked resourcesShawn O. Pearce, Aug 6, 2008
  5. 4/5 Change GitProjectData.getRepositoryMapping to work on linked resourcesShawn O. Pearce, Aug 6, 2008
  6. 5/5 Correct getRepositoryMapping callers to use any IResourceShawn O. Pearce, Aug 6, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.