jgit/org.eclipse.jgit.test
Magnus Vigerlöf 2a5d20c138 Correct the boolean logic for filtering paths
The TreeWalk filtering classes need to support the three different
meanings of the return value the path comparison generates.
A new path comparison method (isPathMatch) is created with
three distinct return values (isPathPrefix use value '0' to
encode two of these) which will makes it possible for the logical
operators (especially NOT) to aggregate a correct verdict.

A filter like: AND(Path("path"), NOT(Path("path/to/other")))
Should filter out 'path/to/other/file', but not 'path/to/my/file'.

The path-limiting feature when testing path/to/my/file, would
result to run test for the following paths:

    path
    path/to
    path/to/my
    path/to/my/file

isPathPrefix('path/to/other') will return '0' for the first two
and since there is no way for NOT to distinguish between an exact
match and a match indicating that the tested path is a 'parent',
it will incorrectly return false and thus remove everything below
'path' immediately.
isPathMatch has a distinguished value for 'parent' matches that
will be preserved through the logic operators and should not
cause an over-eager removal of paths.

The functionality of isPathPrefix is required by other parts
and is untouched.

Unit tests are included to ensure that the logical functionality
is correct and can be preserved.

Change-Id: Ice2ca9406f09f1b179569e99b86a0e5d77baa20d
Signed-off-by: Magnus Vigerlöf <magnus.vigerlof@gmail.com>
2017-02-28 23:56:33 +01:00
..
.settings Enable and fix warnings about redundant specification of type arguments 2017-02-20 22:47:23 +01:00
META-INF Pure Java SHA-1 2017-02-26 11:16:19 -08:00
exttst/org/eclipse/jgit Enable and fix warnings about redundant specification of type arguments 2017-02-20 22:47:23 +01:00
src/org/eclipse/jgit/lib Enable and fix warnings about redundant specification of type arguments 2017-02-20 22:47:23 +01:00
tst/org/eclipse/jgit Correct the boolean logic for filtering paths 2017-02-28 23:56:33 +01:00
tst-rsrc Fix symlink content comparison on MacOS in tree walk 2016-10-11 00:20:23 +02:00
.classpath Change JGit minimum execution environment to JavaSE-1.8 2016-09-20 11:32:36 +02:00
.gitignore Extend the FS class for Java7 2013-05-04 02:01:56 +02:00
.project Remove references to org.eclipse.jgit.java7 2016-08-05 11:22:27 +09:00
BUCK Upgrade buck to 7b7817c48f30687781040b2b82ac9218d5c4eaa4 2016-10-18 01:06:28 +02:00
build.properties Add missing dependency to slf4j-log4j bridge 2016-09-05 04:53:14 -04:00
org.eclipse.jgit.core--All-Tests (Java 8) (de).launch Fixed few locale dependent pgm tests 2016-01-02 17:41:58 +01:00
org.eclipse.jgit.core--All-Tests (Java 8).launch Fix classpath of test launch configurations 2015-11-21 00:33:43 +01:00
org.eclipse.jgit.core--All-Tests.launch Use JUnit4 for tests 2010-08-26 12:26:38 -05:00
org.eclipse.jgit.test-WalkEncryptionTest-Proxy.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
org.eclipse.jgit.test-WalkEncryptionTest.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
plugin.properties Fix plugin provider names to conform with release train requirement 2013-04-08 23:05:36 +02:00
pom.xml Prepare 4.7.0-SNAPSHOT builds 2016-12-27 01:45:50 +01:00