annotate mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SubRepo.java @ 1124:a14a2f7e74d8 development/2024.03.x tip

2024.03.x branch is created
author Nadia Burnasheva <nadezhda.burnasheva@jetbrains.com>
date Thu, 15 Feb 2024 11:33:35 +0100
parents 10dc26b32c35
children
rev   line source
732
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
1 /*
976
7bf4d943d5bb Update copyright
pavel.sher
parents: 800
diff changeset
2 * Copyright 2000-2018 JetBrains s.r.o.
732
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
3 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
4 * Licensed under the Apache License, Version 2.0 (the "License");
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
5 * you may not use this file except in compliance with the License.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
6 * You may obtain a copy of the License at
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
7 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
8 * http://www.apache.org/licenses/LICENSE-2.0
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
9 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
10 * Unless required by applicable law or agreed to in writing, software
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
11 * distributed under the License is distributed on an "AS IS" BASIS,
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
13 * See the License for the specific language governing permissions and
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
14 * limitations under the License.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
15 */
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 730
diff changeset
16
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
17 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
18
697
d1469a7cc038 Skip collecting changes in subrepos which url cannot be resolved
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 680
diff changeset
19 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.WrongSubrepoUrlException;
733
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
20 import jetbrains.buildServer.util.FileUtil;
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
21 import org.jetbrains.annotations.NotNull;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
22
733
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
23 import java.io.File;
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
24 import java.io.IOException;
538
8468457fe4d3 Report subrepo changes - initial version
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 521
diff changeset
25 import java.net.URI;
8468457fe4d3 Report subrepo changes - initial version
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 521
diff changeset
26 import java.net.URISyntaxException;
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
27
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28 /**
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 * @author dmitry.neverov
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
30 */
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
31 public class SubRepo {
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
32 private final String myPath;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
33 private final String myUrl;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
34 private final String myRevision;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
35 private final VcsType myVcsType;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
36
545
1e5b80e2c023 Subrepo doesn't know its parent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 540
diff changeset
37 public SubRepo(@NotNull String path, @NotNull String url, @NotNull String revision) {
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
38 myPath = path;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
39 myRevision = revision;
727
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
40
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
41 if (url.startsWith("[svn]")) {
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
42 myVcsType = VcsType.svn;
800
d94cdfbd9e1c TW-36403 strip trailing whitespaces in .hgsub
Dmitry Neverov <dmitry.neverov@gmail.com>
parents: 735
diff changeset
43 myUrl = url.substring(5).trim();
727
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
44 } else if (url.startsWith("[git]")) {
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
45 myVcsType = VcsType.git;
800
d94cdfbd9e1c TW-36403 strip trailing whitespaces in .hgsub
Dmitry Neverov <dmitry.neverov@gmail.com>
parents: 735
diff changeset
46 myUrl = url.substring(5).trim();
727
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
47 } else {
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
48 myVcsType = VcsType.hg;
800
d94cdfbd9e1c TW-36403 strip trailing whitespaces in .hgsub
Dmitry Neverov <dmitry.neverov@gmail.com>
parents: 735
diff changeset
49 myUrl = url.trim();
727
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
50 }
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
51 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
52
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
53 @NotNull
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
54 public String path() {
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
55 return myPath;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
56 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
57
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
58 @NotNull
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
59 public String url() {
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
60 return myUrl;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
61 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
62
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
63 @NotNull
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
64 public String revision() {
725
9e4c8cd92838 added shortId util
eugene.petrenko@jetbrains.com
parents: 680
diff changeset
65 return HgRepo.shortId(myRevision);
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
66 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
67
1024
c0c4bf1db865 TW-66329 fix
Maxim Zaytsev <Maxim.Zaytsev@jetbrains.com>
parents: 976
diff changeset
68 public String fullRevision() {
c0c4bf1db865 TW-66329 fix
Maxim Zaytsev <Maxim.Zaytsev@jetbrains.com>
parents: 976
diff changeset
69 return myRevision;
c0c4bf1db865 TW-66329 fix
Maxim Zaytsev <Maxim.Zaytsev@jetbrains.com>
parents: 976
diff changeset
70 }
c0c4bf1db865 TW-66329 fix
Maxim Zaytsev <Maxim.Zaytsev@jetbrains.com>
parents: 976
diff changeset
71
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
72 @NotNull
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
73 public VcsType vcsType() {
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
74 return myVcsType;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
75 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
76
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
77 public boolean hasDifferentUrlThan(@NotNull SubRepo other) {
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
78 return !myUrl.equals(other.url());
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
79 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
80
727
e13f499adb6e normalize URL in constructor
eugene.petrenko@jetbrains.com
parents: 726
diff changeset
81 @NotNull
734
a75aae928f79 Fix url resolving on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 733
diff changeset
82 public String resolveUrl(@NotNull final String parentRepoUrl) throws WrongSubrepoUrlException {
540
f9c0725f5c0a Fix test on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 538
diff changeset
83 try {
734
a75aae928f79 Fix url resolving on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 733
diff changeset
84 URI parentURI = parentRepoUrl.endsWith("/") ? new URI(parentRepoUrl) : new URI(parentRepoUrl + "/");
540
f9c0725f5c0a Fix test on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 538
diff changeset
85 URI subrepoAbsUrl = parentURI.resolve(url());
680
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
86 if (isSsh(subrepoAbsUrl) && isPathFromRoot(parentURI))
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
87 return getUrlWithPathFromRoot(subrepoAbsUrl);
540
f9c0725f5c0a Fix test on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 538
diff changeset
88 return subrepoAbsUrl.toString();
697
d1469a7cc038 Skip collecting changes in subrepos which url cannot be resolved
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 680
diff changeset
89 } catch (Exception e) {
733
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
90 File parentRepoDir = new File(parentRepoUrl);
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
91 if (parentRepoDir.isDirectory()) {//handle windows paths
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
92 try {
735
73364919b7cc Fix submodule url resolve on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 734
diff changeset
93 return FileUtil.resolvePath(parentRepoDir, FileUtil.normalizeSeparator(url())).getCanonicalPath();
733
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
94 } catch (IOException e1) {
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
95 throw new WrongSubrepoUrlException(parentRepoUrl, url(), e);
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
96 }
5211baefb5ec Handle windows paths in subrepo resolving
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
97 }
697
d1469a7cc038 Skip collecting changes in subrepos which url cannot be resolved
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 680
diff changeset
98 throw new WrongSubrepoUrlException(parentRepoUrl, url(), e);
540
f9c0725f5c0a Fix test on windows
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 538
diff changeset
99 }
538
8468457fe4d3 Report subrepo changes - initial version
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 521
diff changeset
100 }
8468457fe4d3 Report subrepo changes - initial version
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 521
diff changeset
101
680
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
102 private boolean isSsh(@NotNull URI uri) {
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
103 return "ssh".equals(uri.getScheme());
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
104 }
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
105
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
106 private boolean isPathFromRoot(@NotNull URI uri) {
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
107 return uri.getPath() != null && uri.getPath().startsWith("//");
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
108 }
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
109
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
110 @NotNull
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
111 private String getUrlWithPathFromRoot(@NotNull URI uri) throws URISyntaxException {
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
112 return new URI(uri.getScheme(),
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
113 uri.getUserInfo(),
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
114 uri.getHost(),
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
115 uri.getPort(),
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
116 "/" + uri.getPath(),
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
117 uri.getQuery(),
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
118 uri.getFragment()).toString();
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
119 }
03a544f9eae1 TW-33700 fix relative ssh urls resolution
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 599
diff changeset
120
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
121 @Override
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
122 public String toString() {
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
123 return myPath + " = " + myUrl + "#" + myRevision;
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
124 }
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
125
1027
10dc26b32c35 Update code according to new Java
nikolai.kulakov@DESKTOP-Q4QCGIH
parents: 1024
diff changeset
126 public enum VcsType {
726
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
127 hg(Constants.VCS_NAME), git("jetbrains.git"), svn("svn")
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
128 ;
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
129
726
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
130 private final String myVcsPluginName;
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
131
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
132 VcsType(@NotNull String vcsPluginName) {
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
133 myVcsPluginName = vcsPluginName;
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
134 }
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
135
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
136 @NotNull
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
137 public String getVcsPluginName() {
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
138 return myVcsPluginName;
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
139 }
2ab33390b801 add name for VcsType enum
eugene.petrenko@jetbrains.com
parents: 725
diff changeset
140
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
141 }
554
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
142
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
143 @Override
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
144 public boolean equals(Object o) {
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
145 if (this == o)
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
146 return true;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
147 if (!(o instanceof SubRepo))
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
148 return false;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
149
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
150 SubRepo subRepo = (SubRepo) o;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
151
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
152 if (!myPath.equals(subRepo.myPath))
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
153 return false;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
154 if (!myRevision.equals(subRepo.myRevision))
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
155 return false;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
156 if (!myUrl.equals(subRepo.myUrl))
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
157 return false;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
158
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
159 return true;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
160 }
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
161
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
162 @Override
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
163 public int hashCode() {
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
164 int result = myPath.hashCode();
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
165 result = 31 * result + myUrl.hashCode();
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
166 result = 31 * result + myRevision.hashCode();
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
167 return result;
110de749f460 Collect subrepo changes only if subrepo revision changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 545
diff changeset
168 }
399
45f25ca68312 Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
169 }