Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgDirstate.java @ 430:d280759c2a3f
branch information is not directly related to dirstate, clean API from this dependency
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 29 Mar 2012 18:48:23 +0200 |
parents | 9c9c442b5f2e |
children | 12f668401613 |
comparison
equal
deleted
inserted
replaced
429:cd658b24a620 | 430:d280759c2a3f |
---|---|
62 /* map of canonicalized file names to their originals from dirstate file. | 62 /* map of canonicalized file names to their originals from dirstate file. |
63 * Note, only those canonical names that differ from their dirstate counterpart are recorded here | 63 * Note, only those canonical names that differ from their dirstate counterpart are recorded here |
64 */ | 64 */ |
65 private Map<Path, Path> canonical2dirstateName; | 65 private Map<Path, Path> canonical2dirstateName; |
66 private Pair<Nodeid, Nodeid> parents; | 66 private Pair<Nodeid, Nodeid> parents; |
67 private String currentBranch; | |
68 | 67 |
69 // canonicalPath may be null if we don't need to check for names other than in dirstate | 68 // canonicalPath may be null if we don't need to check for names other than in dirstate |
70 /*package-local*/ HgDirstate(HgRepository hgRepo, File dirstate, PathPool pathPool, PathRewrite canonicalPath) { | 69 /*package-local*/ HgDirstate(HgRepository hgRepo, File dirstate, PathPool pathPool, PathRewrite canonicalPath) { |
71 repo = hgRepo; | 70 repo = hgRepo; |
72 dirstateFile = dirstate; // XXX decide whether file names shall be kept local to reader (see #branches()) or passed from outside | 71 dirstateFile = dirstate; // XXX decide whether file names shall be kept local to reader (see #branches()) or passed from outside |
190 da.done(); | 189 da.done(); |
191 } | 190 } |
192 } | 191 } |
193 | 192 |
194 /** | 193 /** |
195 * FIXME move to a better place, e.g. WorkingCopy container that tracks both dirstate and branches (and, perhaps, undo, lastcommit and other similar information) | 194 * TODO [post-1.0] it's really not a proper place for the method, need WorkingCopyContainer or similar |
196 * @return branch associated with the working directory | 195 * @return branch associated with the working directory |
197 */ | 196 */ |
198 public String branch() throws HgInvalidControlFileException { | 197 /*package-local*/ static String readBranch(HgRepository repo, File branchFile) throws HgInvalidControlFileException { |
199 // XXX is it really proper place for the method? | |
200 if (currentBranch == null) { | |
201 currentBranch = readBranch(repo); | |
202 } | |
203 return currentBranch; | |
204 } | |
205 | |
206 /** | |
207 * XXX is it really proper place for the method? | |
208 * @return branch associated with the working directory | |
209 */ | |
210 /*package-local*/ static String readBranch(HgRepository repo) throws HgInvalidControlFileException { | |
211 String branch = HgRepository.DEFAULT_BRANCH_NAME; | 198 String branch = HgRepository.DEFAULT_BRANCH_NAME; |
212 File branchFile = new File(repo.getRepositoryRoot(), "branch"); | |
213 if (branchFile.exists()) { | 199 if (branchFile.exists()) { |
214 try { | 200 try { |
215 BufferedReader r = new BufferedReader(new FileReader(branchFile)); | 201 BufferedReader r = new BufferedReader(new FileReader(branchFile)); |
216 String b = r.readLine(); | 202 String b = r.readLine(); |
217 if (b != null) { | 203 if (b != null) { |