annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SubrepoPatchTest.java @ 587:e77ef6cd4ddb

Incremental patch for VCS root with subrepos
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 16 Apr 2013 16:20:30 +0400
parents aa515fa1f626
children 27933884b738
rev   line source
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
2
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
3 import com.intellij.openapi.diagnostic.Logger;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
4 import jetbrains.buildServer.log.Log4jFactory;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
5 import jetbrains.buildServer.vcs.CheckoutRules;
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
6 import jetbrains.buildServer.vcs.VcsRoot;
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
7 import jetbrains.buildServer.vcs.impl.VcsRootImpl;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
8 import org.testng.annotations.BeforeMethod;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
9 import org.testng.annotations.Test;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
10
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
11 import java.io.File;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
12
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
13 import static com.intellij.openapi.util.io.FileUtil.delete;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
14 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
15 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.buildPatch;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
16 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
17 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
18
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
19 @Test
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
20 public class SubrepoPatchTest extends BaseMercurialTestCase {
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
21
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
22 static {
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
23 Logger.setFactory(new Log4jFactory());
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
24 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
25
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
26 private MercurialVcsSupport myVcs;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
27 private File myRemoteRepo1;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28 private File myRemoteRepo2;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 private File myRemoteRepo3;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
30 private ServerPluginConfig myPluginConfig;
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
31 private VcsRoot myRoot;
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
32
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
33 @BeforeMethod
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
34 public void setUp() throws Exception {
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
35 super.setUp();
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
36 File remoteRepoParentDir = myTempFiles.createTempDir();
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
37 myRemoteRepo1 = new File(remoteRepoParentDir, "r1");
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
38 myRemoteRepo2 = new File(remoteRepoParentDir, "r2");
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
39 myRemoteRepo3 = new File(remoteRepoParentDir, "r3");
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
40 copyRepository(new File("mercurial-tests/testData/subrepos/r1"), myRemoteRepo1);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
41 copyRepository(new File("mercurial-tests/testData/subrepos/r2"), myRemoteRepo2);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
42 copyRepository(new File("mercurial-tests/testData/subrepos/r3"), myRemoteRepo3);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
43 myPluginConfig = new ServerPluginConfigBuilder()
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
44 .cachesDir(myTempFiles.createTempDir())
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
45 .detectSubrepoChanges(true)
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
46 .build();
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
47 myVcs = mercurialSupport().withConfig(myPluginConfig).build();
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
48 myRoot = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).withSubrepoChanges(true).build();
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
49 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
50
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
51 @Override
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
52 protected String getTestDataPath() {
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
53 return "mercurial-tests/testData";
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
54 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
55
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
56
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
57 public void clean_patch_should_use_subrepo_clones_on_the_server() throws Exception {
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
58 //this makes plugin to clone r1 and its subrepos
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
59 myVcs.getCollectChangesPolicy().collectChanges(myRoot, "e4eced2b7381", "d64d9799c143", CheckoutRules.DEFAULT);
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
60
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
61 //delete remote subrepo to make sure patch is build from the clone on the server
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
62 delete(myRemoteRepo3);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
63
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
64 setName("clean_patch_with_subrepositories");
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
65 checkPatchResult(buildPatch(myVcs, myRoot, null, "d350e7209906", CheckoutRules.DEFAULT).toByteArray());
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
66 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
67
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
68
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
69 public void clean_patch_should_use_subrepo_clones_on_the_server_recursive_case() throws Exception {
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
70 //this makes plugin to clone r1 and its subrepos
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
71 myVcs.getCollectChangesPolicy().collectChanges(myRoot, "e4eced2b7381", "d64d9799c143", CheckoutRules.DEFAULT);
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
72
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
73 //delete remote subrepos to make sure patch is build from the clone on the server
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
74 delete(myRemoteRepo2);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
75 delete(myRemoteRepo3);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
76
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
77 setName("clean_patch_recursive_subrepos");
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
78 checkPatchResult(buildPatch(myVcs, myRoot, null, "d64d9799c143", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
79 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
80
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
81
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
82 public void incremental_patch_subrepo_revision_changed() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
83 setName("inc_patch_subrepo_revision_changed");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
84 checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
85 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
86
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
87
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
88 public void incremental_patch_subrepo_added() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
89 setName("inc_patch_subrepo_added");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
90 checkPatchResult(buildPatch(myVcs, myRoot, "4d7b3db8779f", "d350e7209906", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
91 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
92
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
93
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
94 public void incremental_patch_subrepo_removed() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
95 setName("inc_patch_subrepo_removed");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
96 checkPatchResult(buildPatch(myVcs, myRoot, "34017377d9c3", "4d7b3db8779f", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
97 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
98
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
99
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
100 public void incremental_patch_subrepo_url_changed() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
101 setName("inc_patch_subrepo_url_changed");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
102 checkPatchResult(buildPatch(myVcs, myRoot, "34017377d9c3", "d64d9799c143", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
103 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
104
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
105
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
106 public void incremental_patch_with_checkout_rules() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
107 setName("inc_patch_subrepo_with_checkout_rules");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
108 checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", new CheckoutRules("+:.=>subdir")).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
109 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
110
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
111
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
112 public void incremental_patch_with_excluding_checkout_rules() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
113 setName("inc_patch_subrepo_with_excluding_checkout_rules");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
114 checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", new CheckoutRules("+:.=>subdir\n-:r2")).toByteArray());
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
115 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
116 }