Mercurial > hg > mercurial
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 | 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 | 40 |
41 if (url.startsWith("[svn]")) { | |
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 | 44 } else if (url.startsWith("[git]")) { |
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 | 47 } else { |
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 | 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 | 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 | 68 public String fullRevision() { |
69 return myRevision; | |
70 } | |
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 | 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 | 127 hg(Constants.VCS_NAME), git("jetbrains.git"), svn("svn") |
128 ; | |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
129 |
726 | 130 private final String myVcsPluginName; |
131 | |
132 VcsType(@NotNull String vcsPluginName) { | |
133 myVcsPluginName = vcsPluginName; | |
134 } | |
135 | |
136 @NotNull | |
137 public String getVcsPluginName() { | |
138 return myVcsPluginName; | |
139 } | |
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 } |