Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgInternals.java @ 490:b3c16d1aede0
Refactoring: move HgRepository's implementation aspects to Internals (which is now its imlementation counterpart and primary repository class to be used by other parts of the library)
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 16 Aug 2012 17:08:34 +0200 |
parents | e31e85cf4d4c |
children | ba36f66c32b4 |
comparison
equal
deleted
inserted
replaced
489:9c0138cda59a | 490:b3c16d1aede0 |
---|---|
24 import java.io.Reader; | 24 import java.io.Reader; |
25 import java.net.InetAddress; | 25 import java.net.InetAddress; |
26 import java.net.UnknownHostException; | 26 import java.net.UnknownHostException; |
27 | 27 |
28 import org.tmatesoft.hg.core.Nodeid; | 28 import org.tmatesoft.hg.core.Nodeid; |
29 import org.tmatesoft.hg.core.SessionContext; | |
30 import org.tmatesoft.hg.internal.Experimental; | 29 import org.tmatesoft.hg.internal.Experimental; |
31 import org.tmatesoft.hg.internal.Internals; | 30 import org.tmatesoft.hg.internal.Internals; |
32 import org.tmatesoft.hg.internal.RelativePathRewrite; | 31 import org.tmatesoft.hg.internal.RelativePathRewrite; |
33 import org.tmatesoft.hg.internal.WinToNixPathRewrite; | 32 import org.tmatesoft.hg.internal.WinToNixPathRewrite; |
34 import org.tmatesoft.hg.repo.HgSubrepoLocation.Kind; | 33 import org.tmatesoft.hg.repo.HgSubrepoLocation.Kind; |
71 public CharSequence rewrite(CharSequence path) { | 70 public CharSequence rewrite(CharSequence path) { |
72 return path.toString().toLowerCase(); | 71 return path.toString().toLowerCase(); |
73 } | 72 } |
74 }; | 73 }; |
75 } | 74 } |
76 HgDirstate ds = new HgDirstate(repo, new File(repo.getRepositoryRoot(), "dirstate"), new Path.SimpleSource(), canonicalPath); | 75 HgDirstate ds = new HgDirstate(repo.getImplHelper(), new Path.SimpleSource(), canonicalPath); |
77 ds.read(repo.getImplHelper().buildFileNameEncodingHelper()); | 76 ds.read(); |
78 return ds; | 77 return ds; |
79 } | 78 } |
80 | 79 |
81 public Path[] checkKnown(HgDirstate dirstate, Path[] toCheck) { | 80 public Path[] checkKnown(HgDirstate dirstate, Path[] toCheck) { |
82 Path[] rv = new Path[toCheck.length]; | 81 Path[] rv = new Path[toCheck.length]; |
143 File repoRoot = repo.getWorkingDir(); | 142 File repoRoot = repo.getWorkingDir(); |
144 Path.Source pathSrc = new Path.SimpleSource(new PathRewrite.Composite(new RelativePathRewrite(repoRoot), repo.getToRepoPathHelper())); | 143 Path.Source pathSrc = new Path.SimpleSource(new PathRewrite.Composite(new RelativePathRewrite(repoRoot), repo.getToRepoPathHelper())); |
145 // Impl note: simple source is enough as files in the working dir are all unique | 144 // Impl note: simple source is enough as files in the working dir are all unique |
146 // even if they might get reused (i.e. after FileIterator#reset() and walking once again), | 145 // even if they might get reused (i.e. after FileIterator#reset() and walking once again), |
147 // path caching is better to be done in the code which knows that path are being reused | 146 // path caching is better to be done in the code which knows that path are being reused |
148 return new FileWalker(repo.getContext(), repoRoot, pathSrc, workindDirScope); | 147 return new FileWalker(repo.getSessionContext(), repoRoot, pathSrc, workindDirScope); |
149 } | 148 } |
150 | 149 |
151 // expose otherwise package-local information primarily to use in our own o.t.hg.core package | |
152 public static SessionContext getContext(HgRepository repo) { | |
153 // TODO SessionContext.Source and HgRepo to implement it | |
154 return repo.getContext(); | |
155 } | |
156 | |
157 | |
158 // Convenient check of revision index for validity (not all negative values are wrong as long as we use negative constants) | 150 // Convenient check of revision index for validity (not all negative values are wrong as long as we use negative constants) |
159 public static boolean wrongRevisionIndex(int rev) { | 151 public static boolean wrongRevisionIndex(int rev) { |
160 // TODO Another method to check,throw and expand TIP at once (check[Revision|Revlog]Index() | 152 // TODO Another method to check,throw and expand TIP at once (check[Revision|Revlog]Index() |
161 return rev < 0 && rev != TIP && rev != WORKING_COPY && rev != BAD_REVISION && rev != NO_REVISION; | 153 return rev < 0 && rev != TIP && rev != WORKING_COPY && rev != BAD_REVISION && rev != NO_REVISION; |
162 } | 154 } |