comparison src/org/tmatesoft/hg/repo/HgRepository.java @ 141:8248aae33f7d

Adopt FileIterator moving towards WCStatusCollector parameterizing. Improved path handling, move 'em around
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 17 Feb 2011 04:08:34 +0100
parents 4a948ec83980
children 37a34044e6bd
comparison
equal deleted inserted replaced
140:1c1891ad1c73 141:8248aae33f7d
25 import java.util.List; 25 import java.util.List;
26 26
27 import org.tmatesoft.hg.internal.ConfigFile; 27 import org.tmatesoft.hg.internal.ConfigFile;
28 import org.tmatesoft.hg.internal.DataAccessProvider; 28 import org.tmatesoft.hg.internal.DataAccessProvider;
29 import org.tmatesoft.hg.internal.Filter; 29 import org.tmatesoft.hg.internal.Filter;
30 import org.tmatesoft.hg.internal.RelativePathRewrite;
30 import org.tmatesoft.hg.internal.RequiresFile; 31 import org.tmatesoft.hg.internal.RequiresFile;
31 import org.tmatesoft.hg.internal.RevlogStream; 32 import org.tmatesoft.hg.internal.RevlogStream;
33 import org.tmatesoft.hg.util.FileIterator;
32 import org.tmatesoft.hg.util.FileWalker; 34 import org.tmatesoft.hg.util.FileWalker;
33 import org.tmatesoft.hg.util.Path; 35 import org.tmatesoft.hg.util.Path;
34 import org.tmatesoft.hg.util.PathRewrite; 36 import org.tmatesoft.hg.util.PathRewrite;
35 37
36 38
188 /*package-local*/ DataAccessProvider getDataAccess() { 190 /*package-local*/ DataAccessProvider getDataAccess() {
189 return dataAccess; 191 return dataAccess;
190 } 192 }
191 193
192 // FIXME not sure repository shall create walkers 194 // FIXME not sure repository shall create walkers
193 /*package-local*/ FileWalker createWorkingDirWalker() { 195 /*package-local*/ FileIterator createWorkingDirWalker() {
194 return new FileWalker(repoDir.getParentFile()); 196 File repoRoot = repoDir.getParentFile();
197 Path.Source pathSrc = new Path.SimpleSource(new PathRewrite.Composite(new RelativePathRewrite(repoRoot), getPathHelper()));
198 // Impl note: simple source is enough as files in the working dir are all unique
199 // even if they might get reused (i.e. after FileIterator#reset() and walking once again),
200 // path caching is better to be done in the code which knows that path are being reused
201 return new FileWalker(repoRoot, pathSrc);
195 } 202 }
196 203
197 /** 204 /**
198 * Perhaps, should be separate interface, like ContentLookup 205 * Perhaps, should be separate interface, like ContentLookup
199 * path - repository storage path (i.e. one usually with .i or .d) 206 * path - repository storage path (i.e. one usually with .i or .d)