# HG changeset patch # User Artem Tikhomirov # Date 1321661247 -3600 # Node ID 58016b1b8554c5301883a69b3ea4a1aac729f5a8 # Parent 516b817415ba97eab9371b1c816f52c2c1363c67 HgIgnore: glob patterns not to match substring when not meant to diff -r 516b817415ba -r 58016b1b8554 src/org/tmatesoft/hg/repo/HgIgnore.java --- a/src/org/tmatesoft/hg/repo/HgIgnore.java Fri Nov 18 05:10:33 2011 +0100 +++ b/src/org/tmatesoft/hg/repo/HgIgnore.java Sat Nov 19 01:07:27 2011 +0100 @@ -160,6 +160,7 @@ } sb.append(ch); } + sb.append("(?:/|$)"); return sb.toString(); } diff -r 516b817415ba -r 58016b1b8554 test/org/tmatesoft/hg/test/TestIgnore.java --- a/test/org/tmatesoft/hg/test/TestIgnore.java Fri Nov 18 05:10:33 2011 +0100 +++ b/test/org/tmatesoft/hg/test/TestIgnore.java Sat Nov 19 01:07:27 2011 +0100 @@ -88,6 +88,14 @@ for (Path p : toCheck) { errorCollector.assertTrue(p.toString(), hgIgnore.isIgnored(p)); } + s = "syntax:glob\n.git"; + hgIgnore = HgInternals.newHgIgnore(new StringReader(s)); + Path p = Path.create(".git/aa"); + errorCollector.assertTrue(p.toString(), hgIgnore.isIgnored(p)); + p = Path.create("dir/.git/bb"); + errorCollector.assertTrue(p.toString(), hgIgnore.isIgnored(p)); + p = Path.create("dir/.gittt/cc"); + errorCollector.assertTrue(p.toString(), !hgIgnore.isIgnored(p)); } @Test