Mercurial > hg > mercurial
annotate mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/HgVcsRoot.java @ 915:6b5e83970a26 Hajipur-9.0.x
Fix test: test repository requires a more recent mercurial
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Fri, 02 Jan 2015 12:36:52 +0100 |
parents | b83484e825b7 |
children | c0f3096cfff6 38adef4f1b8f |
rev | line source |
---|---|
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
1 /* |
732
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
686
diff
changeset
|
2 * Copyright 2000-2014 JetBrains s.r.o. |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
3 * |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
4 * Licensed under the Apache License, Version 2.0 (the "License"); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
5 * you may not use this file except in compliance with the License. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
6 * You may obtain a copy of the License at |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
7 * |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
8 * http://www.apache.org/licenses/LICENSE-2.0 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
9 * |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
10 * Unless required by applicable law or agreed to in writing, software |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
11 * distributed under the License is distributed on an "AS IS" BASIS, |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
13 * See the License for the specific language governing permissions and |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
14 * limitations under the License. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
15 */ |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
16 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
17 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
18 import jetbrains.buildServer.buildTriggers.vcs.mercurial.Constants; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
19 import jetbrains.buildServer.buildTriggers.vcs.mercurial.PathUtil; |
841
46eee4b37e58
Option for building patch using tar archives
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
20 import jetbrains.buildServer.serverSide.TeamCityProperties; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
21 import jetbrains.buildServer.util.StringUtil; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
22 import jetbrains.buildServer.vcs.VcsRoot; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
23 import org.jetbrains.annotations.NotNull; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
24 import org.jetbrains.annotations.Nullable; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
25 |
640 | 26 import java.io.File; |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
27 import java.util.HashMap; |
640 | 28 import java.util.Map; |
29 | |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
30 /** |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
31 * Represents mercurial VCS root |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
32 */ |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
33 public class HgVcsRoot { |
654
3daa8e36f8f1
include branch name into log commands
eugene.petrenko@gmail.com
parents:
649
diff
changeset
|
34 public static final String DEFAULT_BRANCH_NAME = "default"; |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
266
diff
changeset
|
35 |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
36 private final Map<String, String> myVcsRootProperties; |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
37 private final String myRepository; |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
38 private final String myHgCommandPath; |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
39 private final String myBranchName; |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
40 private final boolean myUncompressedTransfer; |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
41 private final String myCustomClonePath; |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
348
diff
changeset
|
42 private final String myUserForTag; |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
43 private final AuthSettings myAuthSettings; |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
44 private File myCustomWorkingDir; |
544
4ff88460fb5d
UI option for subrepo changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
535
diff
changeset
|
45 private final boolean myDetectSubrepoChanges; |
649
0b50d7952a7d
TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
641
diff
changeset
|
46 private final boolean myUseTagsAsBranches; |
675
1d417eb6ea28
Add an option for excluding subrepos from patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
654
diff
changeset
|
47 private final boolean myIncludeSubreposInPatch; |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
675
diff
changeset
|
48 private final boolean myUseArchiveForPatch; |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
49 private final PurgePolicy myPurgePolicy; |
859
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
50 private final boolean myIgnoreMissingDefaultBranch; |
870
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
51 private final String myCustomHgConfig; |
898
638d979c6117
Polishing 'use mirrors' option
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
896
diff
changeset
|
52 private final Boolean myUseAgentMirrors; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
53 |
429
04eab204ba39
Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
426
diff
changeset
|
54 public HgVcsRoot(@NotNull final VcsRoot vcsRoot) { |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
55 this(vcsRoot.getProperties()); |
511
f2666e817701
Detect changes in subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
465
diff
changeset
|
56 } |
f2666e817701
Detect changes in subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
465
diff
changeset
|
57 |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
58 public HgVcsRoot(@NotNull Map<String, String> vcsRootProperties) { |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
59 myVcsRootProperties = vcsRootProperties; |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
60 myRepository = getProperty(Constants.REPOSITORY_PROP); |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
61 myHgCommandPath = getProperty(Constants.HG_COMMAND_PATH_PROP); |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
62 myBranchName = getProperty(Constants.BRANCH_NAME_PROP); |
900
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
63 myCustomClonePath = readCustomClonePath(); |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
64 myUncompressedTransfer = "true".equals(getProperty(Constants.UNCOMPRESSED_TRANSFER)); |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
65 myUserForTag = getProperty(Constants.USER_FOR_TAG); |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
66 myAuthSettings = new AuthSettings(getProperty(Constants.USERNAME), getProperty(Constants.PASSWORD)); |
544
4ff88460fb5d
UI option for subrepo changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
535
diff
changeset
|
67 myDetectSubrepoChanges = Boolean.parseBoolean(getProperty(Constants.DETECT_SUBREPO_CHANGES)); |
649
0b50d7952a7d
TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
641
diff
changeset
|
68 myUseTagsAsBranches = Boolean.parseBoolean(getProperty(Constants.USE_TAGS_AS_BRANCHES)); |
859
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
69 myIncludeSubreposInPatch = Boolean.parseBoolean(getProperty(Constants.INCLUDE_SUBREPOS_IN_PATCH, "true")); |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
675
diff
changeset
|
70 myUseArchiveForPatch = Boolean.parseBoolean(getProperty(Constants.USE_ARCHIVE_FOR_PATCH)); |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
71 myPurgePolicy = readPurgePolicy(vcsRootProperties); |
859
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
72 myIgnoreMissingDefaultBranch = Boolean.valueOf(getProperty(Constants.IGNORE_MISSING_DEFAULT_BRANCH, "false")); |
870
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
73 myCustomHgConfig = getProperty(Constants.CUSTOM_HG_CONFIG_PROP, ""); |
898
638d979c6117
Polishing 'use mirrors' option
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
896
diff
changeset
|
74 myUseAgentMirrors = readUseSharedMirrors(); |
896
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
75 } |
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
76 |
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
77 @Nullable |
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
78 private Boolean readUseSharedMirrors() { |
898
638d979c6117
Polishing 'use mirrors' option
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
896
diff
changeset
|
79 String prop = getProperty(Constants.USE_AGENT_MIRRORS); |
896
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
80 if (StringUtil.isEmpty(prop)) |
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
81 return null; |
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
82 return Boolean.parseBoolean(prop); |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
83 } |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
84 |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
85 @NotNull |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
86 private PurgePolicy readPurgePolicy(@NotNull Map<String, String> properties) { |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
87 String policy = properties.get(Constants.PURGE_POLICY); |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
88 if (StringUtil.isEmpty(policy)) |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
89 return PurgePolicy.DONT_RUN; |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
90 return PurgePolicy.valueOf(policy); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
91 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
92 |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
93 public HgVcsRoot withUrl(@NotNull String repositoryUrl) { |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
94 Map<String, String> customUrlProperties = new HashMap<String, String>(getProperties()); |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
95 customUrlProperties.put(Constants.REPOSITORY_PROP, repositoryUrl); |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
96 return new HgVcsRoot(customUrlProperties); |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
97 } |
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
98 |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
99 public String getCustomClonePath() { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
100 return myCustomClonePath; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
101 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
102 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
103 public String getRepository() { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
104 return myRepository; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
105 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
106 |
675
1d417eb6ea28
Add an option for excluding subrepos from patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
654
diff
changeset
|
107 public boolean includeSubreposInPatch() { |
1d417eb6ea28
Add an option for excluding subrepos from patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
654
diff
changeset
|
108 return myIncludeSubreposInPatch; |
1d417eb6ea28
Add an option for excluding subrepos from patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
654
diff
changeset
|
109 } |
1d417eb6ea28
Add an option for excluding subrepos from patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
654
diff
changeset
|
110 |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
675
diff
changeset
|
111 public boolean useArchiveForPatch() { |
841
46eee4b37e58
Option for building patch using tar archives
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
112 if (TeamCityProperties.getBoolean("teamcity.hg.useArchiveForPatch")) |
46eee4b37e58
Option for building patch using tar archives
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
113 return true; |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
675
diff
changeset
|
114 return myUseArchiveForPatch; |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
675
diff
changeset
|
115 } |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
675
diff
changeset
|
116 |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
117 /** |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
118 * Returns name of the branch to use (returns 'default' if no branch specified) |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
119 * @return see above |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
120 */ |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
121 @NotNull |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
122 public String getBranchName() { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
123 return StringUtil.isEmpty(myBranchName) ? DEFAULT_BRANCH_NAME : myBranchName; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
124 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
125 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
126 public boolean isUncompressedTransfer() { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
127 return myUncompressedTransfer; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
128 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
129 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
130 /** |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
266
diff
changeset
|
131 * @return path to hg command as it is set in VCS root settings |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
266
diff
changeset
|
132 */ |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
266
diff
changeset
|
133 public String getHgPath() { |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
134 return myHgCommandPath; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
135 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
136 |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
348
diff
changeset
|
137 @Nullable |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
348
diff
changeset
|
138 public String getUserForTag() { |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
348
diff
changeset
|
139 return myUserForTag; |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
348
diff
changeset
|
140 } |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
348
diff
changeset
|
141 |
348
fd56b9524834
Better method name
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
335
diff
changeset
|
142 public String getRepositoryUrlWithCredentials() { |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
143 return myAuthSettings.getRepositoryUrlWithCredentials(myRepository); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
144 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
145 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
146 /** |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
147 * Set custom working dir for vcs root. This option make sence only for server-side checkout |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
148 * @param customWorkingDir custom working dir |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
149 */ |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
150 public void setCustomWorkingDir(@NotNull final File customWorkingDir) { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
151 myCustomWorkingDir = PathUtil.getCanonicalFile(customWorkingDir); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
152 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
153 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
154 /** |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
155 * Returns custom working dir for root or null if default working dir should be used. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
156 * This options make sence only with server-side checkout. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
157 * @return see above |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
158 */ |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
159 @Nullable |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
160 public File getCustomWorkingDir() { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
161 return myCustomWorkingDir; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
162 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
163 |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
164 public AuthSettings getAuthSettings() { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
165 return myAuthSettings; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
166 } |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
371
diff
changeset
|
167 |
544
4ff88460fb5d
UI option for subrepo changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
535
diff
changeset
|
168 public boolean detectSubrepoChanges() { |
4ff88460fb5d
UI option for subrepo changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
535
diff
changeset
|
169 return myDetectSubrepoChanges; |
4ff88460fb5d
UI option for subrepo changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
535
diff
changeset
|
170 } |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
171 |
649
0b50d7952a7d
TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
641
diff
changeset
|
172 public boolean useTagsAsBranches() { |
0b50d7952a7d
TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
641
diff
changeset
|
173 return myUseTagsAsBranches; |
0b50d7952a7d
TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
641
diff
changeset
|
174 } |
0b50d7952a7d
TW-23468 support tags as branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
641
diff
changeset
|
175 |
584
49b11c289395
Speed up subrepo changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
176 public boolean isSubrepo() { |
49b11c289395
Speed up subrepo changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
177 return Boolean.valueOf(getProperty("teamcity.internal.subrepo")); |
49b11c289395
Speed up subrepo changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
178 } |
49b11c289395
Speed up subrepo changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
179 |
592
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
180 public String getSubrepoPath() { |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
181 return getProperty("teamcity.internal.subrepo.path"); |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
182 } |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
183 |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
184 public String expandSubrepoPath(@NotNull String subrepoPath) { |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
185 if (!isSubrepo()) |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
186 return subrepoPath; |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
187 String mySubrepoPath = getSubrepoPath(); |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
188 if (mySubrepoPath == null) |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
189 return subrepoPath; |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
190 if (!mySubrepoPath.endsWith("/")) |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
191 mySubrepoPath += "/"; |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
192 return mySubrepoPath + subrepoPath; |
e97a636cc9b7
For inner subrepos report full path from the main root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
584
diff
changeset
|
193 } |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
194 |
640 | 195 public String getProperty(@NotNull String propertyName) { |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
196 return myVcsRootProperties.get(propertyName); |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
197 } |
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
198 |
900
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
199 private String readCustomClonePath() { |
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
200 if (TeamCityProperties.getBooleanOrTrue(Constants.CUSTOM_CLONE_PATH_ENABLED)) |
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
201 return getProperty(Constants.SERVER_CLONE_PATH_PROP); |
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
202 return null; |
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
203 } |
b83484e825b7
TW-36401 ability to disable custom clone dir even if it specified in VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
898
diff
changeset
|
204 |
640 | 205 @NotNull |
859
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
206 public String getProperty(@NotNull String propertyName, @NotNull String defaultValue) { |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
207 String value = myVcsRootProperties.get(propertyName); |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
208 if (value != null) |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
209 return value; |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
210 return defaultValue; |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
211 } |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
212 |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
213 @NotNull |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
214 public PurgePolicy getPurgePolicy() { |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
215 return myPurgePolicy; |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
216 } |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
217 |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
218 @NotNull |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
219 public Map<String, String> getProperties() { |
641
da9ab34663d8
Do not implement VcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
640
diff
changeset
|
220 return myVcsRootProperties; |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
465
diff
changeset
|
221 } |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
222 |
859
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
223 public boolean isIgnoreMissingDefaultBranch() { |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
224 return myIgnoreMissingDefaultBranch; |
b1b878449326
TW-37410 ability to get current state without default branch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
842
diff
changeset
|
225 } |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
226 |
870
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
227 @NotNull |
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
228 public String getCustomHgConfig() { |
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
229 return myCustomHgConfig; |
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
230 } |
6df89e185a3c
TW-19916 ability to specify custom mercurial config for VCS root
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
859
diff
changeset
|
231 |
896
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
232 @Nullable |
898
638d979c6117
Polishing 'use mirrors' option
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
896
diff
changeset
|
233 public Boolean getUseAgentMirrors() { |
638d979c6117
Polishing 'use mirrors' option
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
896
diff
changeset
|
234 return myUseAgentMirrors; |
896
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
235 } |
4e29b1244707
Add VCS root option to use shared mirrors during agent-side checkout
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
870
diff
changeset
|
236 |
834
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
237 public static enum PurgePolicy { |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
238 DONT_RUN, |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
239 PURGE_UNKNOWN, |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
240 PURGE_ALL |
80ae3dc66685
TW-18605 add support for 'hg purge'
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
241 } |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
211
diff
changeset
|
242 } |