Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgInternals.java @ 229:1ec6b327a6ac
Scope for status reworked: explicit files or a general matcher
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 31 May 2011 05:23:07 +0200 |
parents | 1a7a9a20e1f9 |
children | 6e1373b54e9b |
comparison
equal
deleted
inserted
replaced
228:fffe4f882248 | 229:1ec6b327a6ac |
---|---|
21 import java.io.File; | 21 import java.io.File; |
22 import java.net.InetAddress; | 22 import java.net.InetAddress; |
23 import java.net.UnknownHostException; | 23 import java.net.UnknownHostException; |
24 | 24 |
25 import org.tmatesoft.hg.internal.ConfigFile; | 25 import org.tmatesoft.hg.internal.ConfigFile; |
26 import org.tmatesoft.hg.internal.Experimental; | |
27 import org.tmatesoft.hg.internal.RelativePathRewrite; | |
28 import org.tmatesoft.hg.util.FileIterator; | |
29 import org.tmatesoft.hg.util.FileWalker; | |
26 import org.tmatesoft.hg.util.Path; | 30 import org.tmatesoft.hg.util.Path; |
31 import org.tmatesoft.hg.util.PathRewrite; | |
27 | 32 |
28 | 33 |
29 /** | 34 /** |
30 * DO NOT USE THIS CLASS, INTENDED FOR TESTING PURPOSES. | 35 * DO NOT USE THIS CLASS, INTENDED FOR TESTING PURPOSES. |
31 * | 36 * |
37 * This class gives access to repository internals, and holds methods that I'm not confident have to be widely accessible | |
32 * Debug helper, to access otherwise restricted (package-local) methods | 38 * Debug helper, to access otherwise restricted (package-local) methods |
33 * | 39 * |
34 * @author Artem Tikhomirov | 40 * @author Artem Tikhomirov |
35 * @author TMate Software Ltd. | 41 * @author TMate Software Ltd. |
36 | |
37 */ | 42 */ |
43 @Experimental(reason="Perhaps, shall split methods with debug purpose from methods that are experimental API") | |
38 public class HgInternals { | 44 public class HgInternals { |
39 | 45 |
40 private final HgRepository repo; | 46 private final HgRepository repo; |
41 | 47 |
42 public HgInternals(HgRepository hgRepo) { | 48 public HgInternals(HgRepository hgRepo) { |
84 return username + '@' + hostname; | 90 return username + '@' + hostname; |
85 } catch (UnknownHostException ex) { | 91 } catch (UnknownHostException ex) { |
86 return username; | 92 return username; |
87 } | 93 } |
88 } | 94 } |
95 | |
96 @Experimental(reason="Don't want to expose io.File from HgRepository; need to create FileIterator for working dir. Need a place to keep that code") | |
97 /*package-local*/ FileIterator createWorkingDirWalker(Path.Matcher workindDirScope) { | |
98 File repoRoot = repo.getRepositoryRoot().getParentFile(); | |
99 Path.Source pathSrc = new Path.SimpleSource(new PathRewrite.Composite(new RelativePathRewrite(repoRoot), repo.getToRepoPathHelper())); | |
100 // Impl note: simple source is enough as files in the working dir are all unique | |
101 // even if they might get reused (i.e. after FileIterator#reset() and walking once again), | |
102 // path caching is better to be done in the code which knows that path are being reused | |
103 return new FileWalker(repoRoot, pathSrc, workindDirScope); | |
104 } | |
105 | |
89 | 106 |
90 // Convenient check of local revision number for validity (not all negative values are wrong as long as we use negative constants) | 107 // Convenient check of local revision number for validity (not all negative values are wrong as long as we use negative constants) |
91 public static boolean wrongLocalRevision(int rev) { | 108 public static boolean wrongLocalRevision(int rev) { |
92 return rev < 0 && rev != TIP && rev != WORKING_COPY && rev != BAD_REVISION; | 109 return rev < 0 && rev != TIP && rev != WORKING_COPY && rev != BAD_REVISION; |
93 } | 110 } |