Mercurial > hg4j
diff src/org/tmatesoft/hg/repo/HgInternals.java @ 296:02f2963c70fa
Issue 13: Tests for mixed-cased filenames in case-insensitive FS
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 16 Sep 2011 21:00:29 +0200 |
parents | 981f9f50bb6c |
children | 650b45d290b1 |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgInternals.java Fri Sep 16 05:35:32 2011 +0200 +++ b/src/org/tmatesoft/hg/repo/HgInternals.java Fri Sep 16 21:00:29 2011 +0200 @@ -55,7 +55,33 @@ } public void dumpDirstate() { - repo.loadDirstate(new PathPool(new PathRewrite.Empty())).dump(); + getDirstate().dump(); + } + + public HgDirstate getDirstate() { + return repo.loadDirstate(new PathPool(new PathRewrite.Empty())); + } + + // tests + public HgDirstate createDirstate(boolean caseSensitiveFileSystem) { + PathRewrite canonicalPath = null; + if (!caseSensitiveFileSystem) { + canonicalPath = new PathRewrite() { + + public CharSequence rewrite(CharSequence path) { + return path.toString().toLowerCase(); + } + }; + } + return new HgDirstate(repo, new File(repo.getRepositoryRoot(), "dirstate"), new PathPool(new PathRewrite.Empty()), canonicalPath); + } + + public Path[] checkKnown(HgDirstate dirstate, Path[] toCheck) { + Path[] rv = new Path[toCheck.length]; + for (int i = 0; i < toCheck.length; i++) { + rv[i] = dirstate.known(toCheck[i]); + } + return rv; } public boolean[] checkIgnored(String... toCheck) {