Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgRepository.java @ 414:bb278ccf9866
Pull changes from smartgit3 branch
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Wed, 21 Mar 2012 20:51:12 +0100 |
parents | 866fc3b597a0 63c5a9d7ca3f |
children | 528b6780a8bd |
comparison
equal
deleted
inserted
replaced
413:7f27122011c3 | 414:bb278ccf9866 |
---|---|
33 import org.tmatesoft.hg.internal.ByteArrayChannel; | 33 import org.tmatesoft.hg.internal.ByteArrayChannel; |
34 import org.tmatesoft.hg.internal.ConfigFile; | 34 import org.tmatesoft.hg.internal.ConfigFile; |
35 import org.tmatesoft.hg.internal.DataAccessProvider; | 35 import org.tmatesoft.hg.internal.DataAccessProvider; |
36 import org.tmatesoft.hg.internal.Experimental; | 36 import org.tmatesoft.hg.internal.Experimental; |
37 import org.tmatesoft.hg.internal.Filter; | 37 import org.tmatesoft.hg.internal.Filter; |
38 import org.tmatesoft.hg.internal.Internals; | |
38 import org.tmatesoft.hg.internal.RevlogStream; | 39 import org.tmatesoft.hg.internal.RevlogStream; |
39 import org.tmatesoft.hg.internal.SubrepoManager; | 40 import org.tmatesoft.hg.internal.SubrepoManager; |
40 import org.tmatesoft.hg.util.CancelledException; | 41 import org.tmatesoft.hg.util.CancelledException; |
41 import org.tmatesoft.hg.util.Pair; | 42 import org.tmatesoft.hg.util.Pair; |
42 import org.tmatesoft.hg.util.Path; | 43 import org.tmatesoft.hg.util.Path; |
167 } | 168 } |
168 | 169 |
169 public HgManifest getManifest() { | 170 public HgManifest getManifest() { |
170 if (manifest == null) { | 171 if (manifest == null) { |
171 RevlogStream content = resolve(Path.create(repoPathHelper.rewrite("00manifest.i")), true); | 172 RevlogStream content = resolve(Path.create(repoPathHelper.rewrite("00manifest.i")), true); |
172 manifest = new HgManifest(this, content); | 173 manifest = new HgManifest(this, content, impl.buildFileNameEncodingHelper()); |
173 } | 174 } |
174 return manifest; | 175 return manifest; |
175 } | 176 } |
176 | 177 |
177 public HgTags getTags() throws HgInvalidControlFileException { | 178 public HgTags getTags() throws HgInvalidControlFileException { |
330 return path.toString().toLowerCase(); | 331 return path.toString().toLowerCase(); |
331 } | 332 } |
332 }; | 333 }; |
333 } | 334 } |
334 HgDirstate ds = new HgDirstate(this, new File(repoDir, "dirstate"), pathPool, canonicalPath); | 335 HgDirstate ds = new HgDirstate(this, new File(repoDir, "dirstate"), pathPool, canonicalPath); |
335 ds.read(); | 336 ds.read(impl.buildFileNameEncodingHelper()); |
336 return ds; | 337 return ds; |
337 } | 338 } |
338 | 339 |
339 /** | 340 /** |
340 * Access to configured set of ignored files. | 341 * Access to configured set of ignored files. |
341 * @see HgIgnore#isIgnored(Path) | 342 * @see HgIgnore#isIgnored(Path) |
342 */ | 343 */ |
343 public HgIgnore getIgnore() /*throws HgInvalidControlFileException */{ | 344 public HgIgnore getIgnore() /*throws HgInvalidControlFileException */{ |
344 // TODO read config for additional locations | 345 // TODO read config for additional locations |
345 if (ignore == null) { | 346 if (ignore == null) { |
346 ignore = new HgIgnore(); | 347 ignore = new HgIgnore(getToRepoPathHelper()); |
347 File ignoreFile = new File(getWorkingDir(), ".hgignore"); | 348 File ignoreFile = new File(getWorkingDir(), ".hgignore"); |
348 try { | 349 try { |
349 final List<String> errors = ignore.read(ignoreFile); | 350 final List<String> errors = ignore.read(ignoreFile); |
350 if (errors != null) { | 351 if (errors != null) { |
351 getContext().getLog().warn(getClass(), "Syntax errors parsing .hgignore:\n%s", errors); | 352 getContext().getLog().warn(getClass(), "Syntax errors parsing .hgignore:\n%s", Internals.join(errors, ",\n")); |
352 } | 353 } |
353 } catch (IOException ex) { | 354 } catch (IOException ex) { |
354 final String m = "Error reading .hgignore file"; | 355 final String m = "Error reading .hgignore file"; |
355 getContext().getLog().warn(getClass(), ex, m); | 356 getContext().getLog().warn(getClass(), ex, m); |
356 // throw new HgInvalidControlFileException(m, ex, ignoreFile); | 357 // throw new HgInvalidControlFileException(m, ex, ignoreFile); |
407 } | 408 } |
408 | 409 |
409 /*package-local*/ SessionContext getContext() { | 410 /*package-local*/ SessionContext getContext() { |
410 return sessionContext; | 411 return sessionContext; |
411 } | 412 } |
413 | |
414 /*package-local*/ Internals getImplHelper() { | |
415 return impl; | |
416 } | |
412 | 417 |
413 private List<Filter> instantiateFilters(Path p, Filter.Options opts) { | 418 private List<Filter> instantiateFilters(Path p, Filter.Options opts) { |
414 List<Filter.Factory> factories = impl.getFilters(this); | 419 List<Filter.Factory> factories = impl.getFilters(this); |
415 if (factories.isEmpty()) { | 420 if (factories.isEmpty()) { |
416 return Collections.emptyList(); | 421 return Collections.emptyList(); |