Mercurial > jhg
diff src/org/tmatesoft/hg/repo/HgRepository.java @ 482:6c67debed07e
Distinguish files in wc from files under repo root, use these constants
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 07 Aug 2012 14:27:13 +0200 |
parents | a458f9fb00ce |
children | e31e85cf4d4c |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgRepository.java Tue Aug 07 14:02:28 2012 +0200 +++ b/src/org/tmatesoft/hg/repo/HgRepository.java Tue Aug 07 14:27:13 2012 +0200 @@ -16,6 +16,7 @@ */ package org.tmatesoft.hg.repo; +import static org.tmatesoft.hg.repo.HgRepositoryFiles.*; import static org.tmatesoft.hg.util.LogFacility.Severity.*; import java.io.File; @@ -190,10 +191,13 @@ return manifest; } + /** + * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> + */ public HgTags getTags() throws HgInvalidControlFileException { if (tags == null) { tags = new HgTags(this); - HgDataFile hgTags = getFileNode(".hgtags"); + HgDataFile hgTags = getFileNode(HgTags.getPath()); if (hgTags.exists()) { for (int i = 0; i <= hgTags.getLastRevision(); i++) { // TODO post-1.0 in fact, would be handy to have walk(start,end) // method for data files as well, though it looks odd. @@ -216,9 +220,9 @@ } File file2read = null; try { - file2read = new File(getWorkingDir(), ".hgtags"); + file2read = new File(getWorkingDir(), HgTags.getPath()); tags.readGlobal(file2read); // XXX replace with HgDataFile.workingCopy - file2read = new File(repoDir, "localtags"); + file2read = new File(repoDir, HgLocalTags.getName()); tags.readLocal(file2read); } catch (IOException ex) { getContext().getLog().dump(getClass(), Error, ex, null); @@ -228,6 +232,9 @@ return tags; } + /** + * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> + */ public HgBranches getBranches() throws HgInvalidControlFileException { if (branches == null) { branches = new HgBranches(this); @@ -274,7 +281,7 @@ * @throws HgInvalidControlFileException if attempt to read information about working copy parents from dirstate failed */ public Pair<Nodeid,Nodeid> getWorkingCopyParents() throws HgInvalidControlFileException { - return HgDirstate.readParents(this, new File(repoDir, "dirstate")); + return HgDirstate.readParents(this, new File(repoDir, Dirstate.getName())); } /** @@ -299,6 +306,7 @@ * Provides access to sub-repositories defined in this repository. Enumerated sub-repositories are those directly * known, not recursive collection of all nested sub-repositories. * @return list of all known sub-repositories in this repository, or empty list if none found. + * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> */ public List<HgSubrepoLocation> getSubrepositories() throws HgInvalidControlFileException { if (subRepos == null) { @@ -346,7 +354,8 @@ } }; } - HgDirstate ds = new HgDirstate(this, new File(repoDir, "dirstate"), pathFactory, canonicalPath); + File dirstateFile = new File(repoDir, Dirstate.getName()); + HgDirstate ds = new HgDirstate(this, dirstateFile, pathFactory, canonicalPath); ds.read(impl.buildFileNameEncodingHelper()); return ds; } @@ -354,34 +363,35 @@ /** * Access to configured set of ignored files. * @see HgIgnore#isIgnored(Path) + * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> */ - public HgIgnore getIgnore() /*throws HgInvalidControlFileException */{ + public HgIgnore getIgnore() throws HgInvalidControlFileException { // TODO read config for additional locations if (ignore == null) { ignore = new HgIgnore(getToRepoPathHelper()); - File ignoreFile = new File(getWorkingDir(), HgRepositoryFiles.HgIgnore.getPath()); + File ignoreFile = new File(getWorkingDir(), HgIgnore.getPath()); try { final List<String> errors = ignore.read(ignoreFile); if (errors != null) { getContext().getLog().dump(getClass(), Warn, "Syntax errors parsing %s:\n%s", ignoreFile.getName(), Internals.join(errors, ",\n")); } } catch (IOException ex) { - final String m = "Error reading .hgignore file"; - getContext().getLog().dump(getClass(), Warn, ex, m); -// throw new HgInvalidControlFileException(m, ex, ignoreFile); + final String m = String.format("Error reading %s file", ignoreFile); + throw new HgInvalidControlFileException(m, ex, ignoreFile); } } return ignore; } - + /** * Mercurial saves message user has supplied for a commit to facilitate message re-use in case commit fails. * This method provides this saved message. * * @return message used for last commit attempt, or <code>null</code> if none + * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> */ - public String getCommitLastMessage() { - File lastMessage = new File(getRepositoryRoot(), HgRepositoryFiles.LastMessage.getPath()); + public String getCommitLastMessage() throws HgInvalidControlFileException { + File lastMessage = new File(repoDir, LastMessage.getPath()); if (!lastMessage.canRead()) { return null; }