Mercurial > jhg
annotate src/org/tmatesoft/hg/repo/HgSubrepoLocation.java @ 506:27398bbfd543
Experiment to add a facility to check working files for actual changes
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Fri, 30 Nov 2012 22:52:39 +0100 | 
| parents | 51d682cf9cdc | 
| children | 2f9ed6bcefa2 | 
| rev | line source | 
|---|---|
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 1 /* | 
| 403 
2747b0723867
FIXMEs: work on exceptions and javadoc
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
295diff
changeset | 2 * Copyright (c) 2011-2012 TMate Software Ltd | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 3 * | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 4 * This program is free software; you can redistribute it and/or modify | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 5 * it under the terms of the GNU General Public License as published by | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 6 * the Free Software Foundation; version 2 of the License. | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 7 * | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 8 * This program is distributed in the hope that it will be useful, | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 11 * GNU General Public License for more details. | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 12 * | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 13 * For information on how to redistribute this software under | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 14 * the terms of a license other than GNU General Public License | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 15 * contact TMate Software at support@hg4j.com | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 16 */ | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 17 package org.tmatesoft.hg.repo; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 18 | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 19 import java.io.File; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 20 | 
| 423 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 21 import org.tmatesoft.hg.core.HgRepositoryNotFoundException; | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 22 import org.tmatesoft.hg.core.Nodeid; | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 23 import org.tmatesoft.hg.util.Path; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 24 | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 25 /** | 
| 467 
51d682cf9cdc
Cleaned experimental tag and updated comments/javadoc
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
442diff
changeset | 26 * Descriptor for subrepository location | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 27 * | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 28 * @see http://mercurial.selenic.com/wiki/Subrepository | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 29 * @author Artem Tikhomirov | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 30 * @author TMate Software Ltd. | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 31 */ | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 32 public class HgSubrepoLocation { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 33 | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 34 private final HgRepository owner; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 35 private final Kind kind; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 36 private final Path location; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 37 private final String source; | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 38 private final Nodeid revInfo; | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 39 | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 40 public enum Kind { Hg, SVN, Git, } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 41 | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 42 /** | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 43 * | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 44 * @param parentRepo | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 45 * @param repoLocation path, shall be valid directory (i.e. even if .hgsub doesn't specify trailing slash, this one shall) | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 46 * @param actualLocation | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 47 * @param type | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 48 * @param revision may be <code>null</code> | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 49 */ | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 50 /*package-local*/ HgSubrepoLocation(HgRepository parentRepo, Path repoLocation, String actualLocation, Kind type, Nodeid revision) { | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 51 owner = parentRepo; | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 52 location = repoLocation; | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 53 source = actualLocation; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 54 kind = type; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 55 revInfo = revision; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 56 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 57 | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 58 /** | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 59 * Sub-repository's location within owning repository, always directory, <code>path/to/nested</code>. | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 60 * <p> | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 61 * May differ from left-hand, key value from <code>.hgsub</code> if the latter doesn't include trailing slash, which is required | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 62 * for {@link Path} objects | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 63 * | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 64 * @return path to nested repository relative to owner's location | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 65 */ | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 66 public Path getLocation() { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 67 return location; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 68 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 69 | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 70 /** | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 71 * Right-hand value from <code>.hgsub</code>, with <code>[kind]</code> stripped, if any. | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 72 * @return sub-repository's source | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 73 */ | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 74 public String getSource() { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 75 return source; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 76 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 77 | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 78 /** | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 79 * Sub-repository kind, either Mercurial, Subversion or Git | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 80 * @return one of predefined constants | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 81 */ | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 82 public Kind getType() { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 83 return kind; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 84 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 85 | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 86 /** | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 87 * For a nested repository that has been committed at least once, returns | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 88 * its revision as known from <code>.hgsubstate</code> | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 89 * | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 90 * <p>Note, this revision belongs to the nested repository history, not that of owning repository. | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 91 * | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 92 * @return revision of the nested repository, or <code>null</code> if not yet committed | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 93 */ | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 94 public Nodeid getRevision() { | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 95 return revInfo; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 96 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 97 | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 98 /** | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 99 * Answers whether this sub repository has ever been part of a commit of the owner repository | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 100 * | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 101 * @return <code>true</code> if owning repository records {@link #getRevision() revision} of this sub-repository | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 102 */ | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 103 public boolean isCommitted() { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 104 return revInfo != null; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 105 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 106 | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 107 /** | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 108 * Answers whether there are local changes in the sub-repository, | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 109 * @return <code>true</code> if it's dirty | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 110 */ | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 111 public boolean hasChanges() { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 112 throw HgRepository.notImplemented(); | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 113 } | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 114 | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 115 /** | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 116 * Access repository that owns nested one described by this object | 
| 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 117 */ | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 118 public HgRepository getOwner() { | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 119 return owner; | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 120 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 121 | 
| 423 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 122 /** | 
| 442 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
423diff
changeset | 123 * Access nested repository as a full-fledged Mercurial repository | 
| 423 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 124 * | 
| 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 125 * @return object to access sub-repository | 
| 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 126 * @throws HgRepositoryNotFoundException if failed to find repository | 
| 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 127 * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> | 
| 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 128 */ | 
| 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 129 public HgRepository getRepo() throws HgRepositoryNotFoundException { | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 130 if (kind != Kind.Hg) { | 
| 423 
9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
403diff
changeset | 131 throw new HgInvalidStateException(String.format("Unsupported subrepository %s", kind)); | 
| 239 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 132 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 133 return new HgLookup().detect(new File(owner.getWorkingDir(), source)); | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 134 } | 
| 
df9d2854d3d6
Initial access to subrepositories
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 135 } | 
