Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgRepository.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 | 48f993aa2f41 |
| children | 12f668401613 |
comparison
equal
deleted
inserted
replaced
| 429:cd658b24a620 | 430:d280759c2a3f |
|---|---|
| 113 private final HashMap<Path, SoftReference<RevlogStream>> streamsCache = new HashMap<Path, SoftReference<RevlogStream>>(); | 113 private final HashMap<Path, SoftReference<RevlogStream>> streamsCache = new HashMap<Path, SoftReference<RevlogStream>>(); |
| 114 | 114 |
| 115 private final org.tmatesoft.hg.internal.Internals impl; | 115 private final org.tmatesoft.hg.internal.Internals impl; |
| 116 private HgIgnore ignore; | 116 private HgIgnore ignore; |
| 117 private HgRepoConfig repoConfig; | 117 private HgRepoConfig repoConfig; |
| 118 | |
| 119 /* | |
| 120 * TODO [post-1.0] move to a better place, e.g. WorkingCopy container that tracks both dirstate and branches | |
| 121 * (and, perhaps, undo, lastcommit and other similar information), and is change listener so that we don't need to | |
| 122 * worry about this cached value become stale | |
| 123 */ | |
| 124 private String wcBranch; | |
| 125 | |
| 118 | 126 |
| 119 HgRepository(String repositoryPath) { | 127 HgRepository(String repositoryPath) { |
| 120 repoDir = null; | 128 repoDir = null; |
| 121 workingDir = null; | 129 workingDir = null; |
| 122 repoLocation = repositoryPath; | 130 repoLocation = repositoryPath; |
| 271 /** | 279 /** |
| 272 * @return name of the branch associated with working directory, never <code>null</code>. | 280 * @return name of the branch associated with working directory, never <code>null</code>. |
| 273 * @throws HgInvalidControlFileException if attempt to read branch name failed. | 281 * @throws HgInvalidControlFileException if attempt to read branch name failed. |
| 274 */ | 282 */ |
| 275 public String getWorkingCopyBranchName() throws HgInvalidControlFileException { | 283 public String getWorkingCopyBranchName() throws HgInvalidControlFileException { |
| 276 return HgDirstate.readBranch(this); | 284 if (wcBranch == null) { |
| 285 wcBranch = HgDirstate.readBranch(this, new File(repoDir, "branch")); | |
| 286 } | |
| 287 return wcBranch; | |
| 277 } | 288 } |
| 278 | 289 |
| 279 /** | 290 /** |
| 280 * @return location where user files (shall) reside | 291 * @return location where user files (shall) reside |
| 281 */ | 292 */ |
