annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVcsRootTest.java @ 428:a68741340603

minor
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 11 May 2012 16:05:21 +0400
parents mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SettingsTest.java@c91c4f1ebd53
children 04eab204ba39
rev   line source
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
1 /*
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
2 * Copyright 2000-2011 JetBrains s.r.o.
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
3 *
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
4 * Licensed under the Apache License, Version 2.0 (the "License");
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
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: 181
diff changeset
6 * You may obtain a copy of the License at
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
7 *
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
8 * http://www.apache.org/licenses/LICENSE-2.0
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
9 *
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
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: 181
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: 181
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: 181
diff changeset
13 * See the License for the specific language governing permissions and
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
14 * limitations under the License.
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
15 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
16 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
17
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
18 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.HgVcsRoot;
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 266
diff changeset
19 import jetbrains.buildServer.vcs.VcsRoot;
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
20 import jetbrains.buildServer.vcs.impl.VcsRootImpl;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
21 import junit.framework.TestCase;
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 266
diff changeset
22 import org.jetbrains.annotations.NotNull;
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
23 import org.testng.annotations.Test;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
24
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
25 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
26 * @author Pavel.Sher
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
27 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
28 @Test
428
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 426
diff changeset
29 public class HgVcsRootTest extends TestCase {
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
30
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
31 public void test_url_without_credentials() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
32 VcsRootImpl vcsRoot = createVcsRoot("http://host.com/path");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
33 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
34 assertEquals("http://user:pwd@host.com/path", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
35 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
36
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
37 public void test_url_with_credentials() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
38 VcsRootImpl vcsRoot = createVcsRoot("http://user:pwd@host.com/path");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
39 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
40 assertEquals("http://user:pwd@host.com/path", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
41 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
42
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
43 public void test_url_with_username() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
44 VcsRootImpl vcsRoot = createVcsRoot("http://user@host.com/path");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
45 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
46 assertEquals("http://user:pwd@host.com/path", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
47 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
48
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
49 public void test_url_with_at_after_slash() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
50 VcsRootImpl vcsRoot = createVcsRoot("http://host.com/path@");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
51 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
52 assertEquals("http://user:pwd@host.com/path@", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
53 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
54
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
55 public void test_url_with_at_in_username() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
56 VcsRootImpl vcsRoot = createVcsRoot("http://host.com/path", "my.name@gmail.com", "1234");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
57 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
58 assertEquals("http://my.name%40gmail.com:1234@host.com/path", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
59 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
60
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
61 /** TW-13768 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
62 public void test_underscore_in_host() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
63 VcsRootImpl vcsRoot = createVcsRoot("http://Klekovkin.SDK_GARANT:8000/", "my.name@gmail.com", "1234");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
64 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
65 assertEquals("http://my.name%40gmail.com:1234@Klekovkin.SDK_GARANT:8000/", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
66 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
67
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
68 /** TW-13768 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
69 public void test_underscore_in_host_with_credentials_in_url() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
70 VcsRootImpl vcsRoot = createVcsRoot("http://me:mypass@Klekovkin.SDK_GARANT:8000/");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
71 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
72 assertEquals("http://me:mypass@Klekovkin.SDK_GARANT:8000/", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
73 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
74
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
75 public void test_windows_path() throws Exception {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
76 VcsRootImpl vcsRoot = createVcsRoot("c:\\windows\\path");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
77 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
78 assertEquals("c:\\windows\\path", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
79 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
80
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
81 public void test_file_scheme_has_no_credentials() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
82 VcsRootImpl vcsRoot = createVcsRoot("file:///path/to/repo", "my.name@gmail.com", "1234");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
83 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
84 assertEquals("file:///path/to/repo", root.getRepositoryUrlWithCredentials());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
85 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
86
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
87 public void uncompressed_transfer() {
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
88 VcsRootImpl vcsRoot = createVcsRoot("http://host.com/path");
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
89 vcsRoot.addProperty(Constants.UNCOMPRESSED_TRANSFER, "true");
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
90 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
91 assertTrue(root.isUncompressedTransfer());
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
92 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
93
322
6667765025c6 Merge branch Eluru-6.5.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309 320
diff changeset
94 //TW-18262
6667765025c6 Merge branch Eluru-6.5.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309 320
diff changeset
95 public void ampersand_in_password() {
6667765025c6 Merge branch Eluru-6.5.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309 320
diff changeset
96 VcsRootImpl vcsRoot = createVcsRoot("http://some.org/path", "user", "m&n");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
97 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
98 assertEquals("http://user:m%26n@some.org/path", root.getRepositoryUrlWithCredentials());
322
6667765025c6 Merge branch Eluru-6.5.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309 320
diff changeset
99 }
6667765025c6 Merge branch Eluru-6.5.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 309 320
diff changeset
100
331
e5b15dc36e63 TW-18835: provide URLStreamProtocolHandler in order to parse ssh URLs correctly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
101 //TW-18835
e5b15dc36e63 TW-18835: provide URLStreamProtocolHandler in order to parse ssh URLs correctly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
102 public void test_ssh() {
e5b15dc36e63 TW-18835: provide URLStreamProtocolHandler in order to parse ssh URLs correctly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
103 VcsRootImpl vcsRoot = createVcsRoot("ssh://ourserver.com/mercurialrepo/", "user", "pwd");
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
104 HgVcsRoot root = createHgRoot(vcsRoot);
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
105 assertEquals("ssh://user:pwd@ourserver.com/mercurialrepo/", root.getRepositoryUrlWithCredentials());
331
e5b15dc36e63 TW-18835: provide URLStreamProtocolHandler in order to parse ssh URLs correctly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
106 }
e5b15dc36e63 TW-18835: provide URLStreamProtocolHandler in order to parse ssh URLs correctly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
107
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
108 private VcsRootImpl createVcsRoot(String url) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
109 return createVcsRoot(url, "user", "pwd");
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
110 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
111
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
112 private VcsRootImpl createVcsRoot(String url, String userName, String password) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
113 VcsRootImpl vcsRoot = new VcsRootImpl(1, Constants.VCS_NAME);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
114 vcsRoot.addProperty(Constants.HG_COMMAND_PATH_PROP, "hg.exe");
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
115 vcsRoot.addProperty(Constants.REPOSITORY_PROP, url);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
116 vcsRoot.addProperty(Constants.USERNAME, userName);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
117 vcsRoot.addProperty(Constants.PASSWORD, password);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
118 return vcsRoot;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
119 }
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 266
diff changeset
120
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
121 private HgVcsRoot createHgRoot(@NotNull final VcsRoot root) {
309
33305b2022c2 Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 280
diff changeset
122 ServerPluginConfig config = new ServerPluginConfigBuilder().build();
426
c91c4f1ebd53 Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 355
diff changeset
123 return new HgVcsRoot(new ServerHgPathProvider(config), root);
280
8c1fd2e565ae Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 266
diff changeset
124 }
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 181
diff changeset
125 }