Mercurial > jhg
annotate src/org/tmatesoft/hg/repo/HgSubrepoLocation.java @ 627:5153eb73b18d
Added tag v1.1rc1 for changeset 5afc7eedb3dd
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Tue, 21 May 2013 20:17:33 +0200 | 
| parents | 2f9ed6bcefa2 | 
| children | 
| 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: 
295 
diff
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: 
403 
diff
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: 
423 
diff
changeset
 | 
22 import org.tmatesoft.hg.core.Nodeid; | 
| 
526
 
2f9ed6bcefa2
Initial support for Revert command with accompanying minor refactoring
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
467 
diff
changeset
 | 
23 import org.tmatesoft.hg.internal.Internals; | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
24 import org.tmatesoft.hg.util.Path; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
25 | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
26 /** | 
| 
467
 
51d682cf9cdc
Cleaned experimental tag and updated comments/javadoc
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
442 
diff
changeset
 | 
27 * 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: 
423 
diff
changeset
 | 
28 * | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
29 * @see http://mercurial.selenic.com/wiki/Subrepository | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
30 * @author Artem Tikhomirov | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
31 * @author TMate Software Ltd. | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
32 */ | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
33 public class HgSubrepoLocation { | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
34 | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
35 private final HgRepository owner; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
36 private final Kind kind; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
37 private final Path location; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
38 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: 
423 
diff
changeset
 | 
39 private final Nodeid revInfo; | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
40 | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
41 public enum Kind { Hg, SVN, Git, } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
42 | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
43 /** | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
44 * | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
45 * @param parentRepo | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
46 * @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: 
423 
diff
changeset
 | 
47 * @param actualLocation | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
48 * @param type | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
49 * @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: 
423 
diff
changeset
 | 
50 */ | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
51 /*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
 | 
52 owner = parentRepo; | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
53 location = repoLocation; | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
54 source = actualLocation; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
55 kind = type; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
56 revInfo = revision; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
57 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
58 | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
59 /** | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
60 * 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: 
423 
diff
changeset
 | 
61 * <p> | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
62 * 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: 
423 
diff
changeset
 | 
63 * for {@link Path} objects | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
64 * | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
65 * @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: 
423 
diff
changeset
 | 
66 */ | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
67 public Path getLocation() { | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
68 return location; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
69 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
70 | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
71 /** | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
72 * 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: 
423 
diff
changeset
 | 
73 * @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: 
423 
diff
changeset
 | 
74 */ | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
75 public String getSource() { | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
76 return source; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
77 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
78 | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
79 /** | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
80 * 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: 
423 
diff
changeset
 | 
81 * @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: 
423 
diff
changeset
 | 
82 */ | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
83 public Kind getType() { | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
84 return kind; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
85 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
86 | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
87 /** | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
88 * 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: 
423 
diff
changeset
 | 
89 * 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: 
423 
diff
changeset
 | 
90 * | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
91 * <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: 
423 
diff
changeset
 | 
92 * | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
93 * @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: 
423 
diff
changeset
 | 
94 */ | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
95 public Nodeid getRevision() { | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
96 return revInfo; | 
| 
 
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 | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
99 /** | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
100 * 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: 
423 
diff
changeset
 | 
101 * | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
102 * @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
 | 
103 */ | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
104 public boolean isCommitted() { | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
105 return revInfo != null; | 
| 
 
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 | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
108 /** | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
109 * 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: 
423 
diff
changeset
 | 
110 * @return <code>true</code> if it's dirty | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
111 */ | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
112 public boolean hasChanges() { | 
| 
526
 
2f9ed6bcefa2
Initial support for Revert command with accompanying minor refactoring
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
467 
diff
changeset
 | 
113 throw Internals.notImplemented(); | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
114 } | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
115 | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
116 /** | 
| 
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
117 * 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: 
423 
diff
changeset
 | 
118 */ | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
119 public HgRepository getOwner() { | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
120 return owner; | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
121 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
122 | 
| 
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: 
403 
diff
changeset
 | 
123 /** | 
| 
442
 
6865eb742883
Tests for subrepo API, refactor status tests for reuse, better subrepos API
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents: 
423 
diff
changeset
 | 
124 * 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: 
403 
diff
changeset
 | 
125 * | 
| 
 
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: 
403 
diff
changeset
 | 
126 * @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: 
403 
diff
changeset
 | 
127 * @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: 
403 
diff
changeset
 | 
128 * @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: 
403 
diff
changeset
 | 
129 */ | 
| 
 
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: 
403 
diff
changeset
 | 
130 public HgRepository getRepo() throws HgRepositoryNotFoundException { | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
131 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: 
403 
diff
changeset
 | 
132 throw new HgInvalidStateException(String.format("Unsupported subrepository %s", kind)); | 
| 
239
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
133 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
134 return new HgLookup().detect(new File(owner.getWorkingDir(), source)); | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
135 } | 
| 
 
df9d2854d3d6
Initial access to subrepositories
 
Artem Tikhomirov <tikhomirov.artem@gmail.com> 
parents:  
diff
changeset
 | 
136 } | 
