Community
Participate
Working Groups
The visitor mechanism for the history store is wrong. In the part where it does partial matching on the key bytes, we have no way to determine if we have a match on a full segment or not. For instance, a key of /a/b will match true for both /a/b/c and /a/b1. We need to determine: 1). what methods this effects (see bug 28238 for effects to #copyHistory) 2). what we can do to fix this (may require key format change 3). what our compatibility story is for local history (see #2)
Investigate for M4. May require too much work to fix until M5.
Tried fixing at the IndexedCursor level but there are too many side-effects and other users of that code. Best place would be investigation into modification of HistoryStore.accept
Created attachment 2810 [details] patch for org.eclipse.core.resources This is a patch for the org.eclipse.core.resources plug-in. Ignore the difference in the .project and do not accept them as changes when merging. The patch changes the HistoryStore.accept method to only do partial matches on a path segment basis rather than on the byte-wise level. Note that now there are some test failures in the HistoryStore. See next comment for more info...
Created attachment 2811 [details] patch for org.eclipse.core.tests.resources This is a patch for the test suites. The "fix" above causes some tests to fail. We need to determine whether this is a real problem or whether the tests are relying on the old (incorrect) behaviour.
Created attachment 2812 [details] patch Potential code change for this bug.
New patch allows for the case where the path has a trailing slash. (e.g. Path.ROOT) Released code into HEAD. Closing