Mercurial > hg > mercurial
annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java @ 791:249eb1d652a7
Merge branch Gaya-8.1.x
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Thu, 01 May 2014 19:55:03 +0200 |
parents | 06dcc79b304d 914a0b473c45 |
children | f86c06f4ab8a |
rev | line source |
---|---|
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
1 /* |
732
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
696
diff
changeset
|
2 * Copyright 2000-2014 JetBrains s.r.o. |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
3 * |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
4 * Licensed under the Apache License, Version 2.0 (the "License"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
5 * you may not use this file except in compliance with the License. |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
6 * You may obtain a copy of the License at |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
7 * |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
8 * http://www.apache.org/licenses/LICENSE-2.0 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
9 * |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
10 * Unless required by applicable law or agreed to in writing, software |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
11 * distributed under the License is distributed on an "AS IS" BASIS, |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
13 * See the License for the specific language governing permissions and |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
14 * limitations under the License. |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
15 */ |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
16 package jetbrains.buildServer.buildTriggers.vcs.mercurial; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
17 |
604 | 18 import com.intellij.openapi.util.SystemInfo; |
432
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
19 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.*; |
604 | 20 import jetbrains.buildServer.util.FileUtil; |
474
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
21 import jetbrains.buildServer.util.TestFor; |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
22 import jetbrains.buildServer.vcs.*; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
23 import jetbrains.buildServer.vcs.impl.VcsRootImpl; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
24 import junit.framework.Assert; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
25 import org.jetbrains.annotations.NotNull; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
26 import org.testng.annotations.BeforeMethod; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
27 import org.testng.annotations.Test; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
28 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
29 import java.io.ByteArrayOutputStream; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
30 import java.io.File; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
31 import java.io.FilenameFilter; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
32 import java.io.IOException; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
33 import java.util.*; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
34 |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
35 import static com.intellij.openapi.util.io.FileUtil.delete; |
489
493f78cb64dd
Move MercurialBranchSupport to separate module
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
485
diff
changeset
|
36 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport; |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
37 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.ModificationDataMatcher.modificationData; |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
38 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.*; |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
39 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot; |
446
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
40 import static jetbrains.buildServer.util.Util.map; |
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
41 import static org.hamcrest.MatcherAssert.assertThat; |
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
42 import static org.hamcrest.Matchers.hasItem; |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
43 import static org.hamcrest.Matchers.not; |
338
d31d7c81b637
Support subrepositories while building clean patch.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
329
diff
changeset
|
44 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
45 @Test |
636
27933884b738
Better test name + reuse temp files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
609
diff
changeset
|
46 public class MercurialVcsSupportTest extends BaseMercurialPatchTestCase { |
274
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
47 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
48 private MercurialVcsSupport myVcs; |
274
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
49 private String myRep2Path = new File("mercurial-tests/testData/rep2").getAbsolutePath(); |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
50 private ServerPluginConfig myPluginConfig; |
644
96af0d63f80a
Unify HgRepoFactory on server and agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
636
diff
changeset
|
51 private HgPathProvider myHgPathProvider; |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
52 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
53 @BeforeMethod |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
54 protected void setUp() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
55 super.setUp(); |
309
33305b2022c2
Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
299
diff
changeset
|
56 myPluginConfig = new ServerPluginConfigBuilder() |
33305b2022c2
Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
299
diff
changeset
|
57 .cachesDir(myTempFiles.createTempDir()) |
33305b2022c2
Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
299
diff
changeset
|
58 .build(); |
644
96af0d63f80a
Unify HgRepoFactory on server and agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
636
diff
changeset
|
59 MercurialSupportBuilder mercurialBuilder = mercurialSupport().withConfig(myPluginConfig); |
96af0d63f80a
Unify HgRepoFactory on server and agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
636
diff
changeset
|
60 myVcs = mercurialBuilder.build(); |
96af0d63f80a
Unify HgRepoFactory on server and agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
636
diff
changeset
|
61 myHgPathProvider = mercurialBuilder.getHgPathProvider(); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
62 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
63 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
64 protected String getTestDataPath() { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
65 return "mercurial-tests/testData"; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
66 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
67 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
68 public void test_get_current_version() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
69 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
70 |
696
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
71 RepositoryStateData state = myVcs.getCollectChangesPolicy().getCurrentState(vcsRoot); |
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
72 assertEquals(state.getBranchRevisions().get(state.getDefaultBranchName()), "9c6a6b4aede0"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
73 assertEquals("9c6a6b4aede0", myVcs.getVersionDisplayName("10:9c6a6b4aede0", vcsRoot)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
74 |
696
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
75 state = myVcs.getCollectChangesPolicy().getCurrentState(createVcsRoot(simpleRepo(), "test_branch")); |
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
76 assertEquals(state.getBranchRevisions().get(state.getDefaultBranchName()), "04c3ae4c6312"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
77 |
696
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
78 state = myVcs.getCollectChangesPolicy().getCurrentState(createVcsRoot(simpleRepo(), "name with space")); |
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
79 assertEquals(state.getBranchRevisions().get(state.getDefaultBranchName()), "9babcf2d5705"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
80 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
81 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
82 private List<ModificationData> collectChanges(@NotNull VcsRoot vcsRoot, @NotNull String from, @NotNull String to, @NotNull CheckoutRules rules) throws VcsException { |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
83 return myVcs.getCollectChangesPolicy().collectChanges(vcsRoot, from, to, rules); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
84 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
85 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
86 public void test_collect_changes_between_two_same_roots() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
87 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
88 VcsRootImpl sameVcsRoot = createVcsRoot(simpleRepo()); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
89 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(vcsRoot, "0:9875b412a788", sameVcsRoot, "3:9522278aa38d", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
90 do_check_for_collect_changes(changes); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
91 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
92 |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
274
diff
changeset
|
93 public void test_collect_changes_from_non_existing_revision() throws Exception { |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
274
diff
changeset
|
94 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
274
diff
changeset
|
95 VcsRootImpl sameVcsRoot = createVcsRoot(simpleRepo()); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
96 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(vcsRoot, "0:9875b412a789", sameVcsRoot, "3:9522278aa38d", new CheckoutRules("")); |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
274
diff
changeset
|
97 assertFalse(changes.isEmpty());//should return some changes from the toRoot |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
274
diff
changeset
|
98 } |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
274
diff
changeset
|
99 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
100 public void test_collect_changes() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
101 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
102 List<ModificationData> changes = collectChanges(vcsRoot, "0:9875b412a788", "3:9522278aa38d", new CheckoutRules("")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
103 do_check_for_collect_changes(changes); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
104 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
105 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
106 private void do_check_for_collect_changes(List<ModificationData> changes) throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
107 assertEquals(3, changes.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
108 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
109 ModificationData md1 = changes.get(0); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
110 ModificationData md2 = changes.get(1); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
111 ModificationData md3 = changes.get(2); |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
112 assertEquals(md1.getVersion(), "1d446e82d356"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
113 assertEquals(md1.getDescription(), "new file added"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
114 List<VcsChange> files1 = md1.getChanges(); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
115 assertEquals(1, files1.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
116 assertEquals(VcsChangeInfo.Type.ADDED, files1.get(0).getType()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
117 assertEquals(normalizePath(files1.get(0).getRelativeFileName()), "dir1/file3.txt"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
118 |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
119 assertEquals(md2.getVersion(), "7209b1f1d793"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
120 assertEquals(md2.getDescription(), "file4.txt added"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
121 List<VcsChange> files2 = md2.getChanges(); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
122 assertEquals(1, files2.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
123 assertEquals(files2.get(0).getType(), VcsChangeInfo.Type.ADDED); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
124 assertEquals(normalizePath(files2.get(0).getRelativeFileName()), "dir1/file4.txt"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
125 |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
126 assertEquals(md3.getVersion(), "9522278aa38d"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
127 assertEquals(md3.getDescription(), "file removed"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
128 List<VcsChange> files3 = md3.getChanges(); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
129 assertEquals(1, files3.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
130 assertEquals(files3.get(0).getType(), VcsChangeInfo.Type.REMOVED); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
131 assertEquals(normalizePath(files3.get(0).getRelativeFileName()), "dir1/file4.txt"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
132 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
133 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
134 @Test |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
135 public void test_build_patch() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
136 setName("cleanPatch1"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
137 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
138 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
139 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, null, "4:b06a290a363b", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
140 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
141 |
309
33305b2022c2
Take caches and plugin data dirs from PluginConfig
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
299
diff
changeset
|
142 File clonedReposParentDir = myPluginConfig.getCachesDir(); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
143 assertTrue(clonedReposParentDir.isDirectory()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
144 assertTrue(1 == clonedReposParentDir.list(new FilenameFilter() { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
145 public boolean accept(final File dir, final String name) { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
146 return name.startsWith("hg_"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
147 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
148 }).length); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
149 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
150 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
151 public void test_build_incremental_patch() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
152 setName("patch1"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
153 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
154 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
155 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, "3:9522278aa38d", "4:b06a290a363b", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
156 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
157 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
158 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
159 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
160 public void test_build_incremental_patch_checkout_rules() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
161 setName("patch1_checkout_rules"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
162 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
163 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
164 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, "3:9522278aa38d", "4:b06a290a363b", new CheckoutRules("+:dir1=>path")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
165 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
166 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
167 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
168 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
169 public void test_build_clean_patch_checkout_rules() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
170 setName("cleanPatch1_checkout_rules"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
171 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
172 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
173 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, null, "4:b06a290a363b", new CheckoutRules("+:dir1/subdir=>.")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
174 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
175 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
176 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
177 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
178 public void test_build_incremental_patch_file_with_space() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
179 setName("patch2"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
180 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
181 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
182 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, "3:9522278aa38d", "6:b9deb9a1c6f4", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
183 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
184 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
185 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
186 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
187 public void test_get_content() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
188 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
189 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
190 byte[] content = myVcs.getContent("dir1/subdir/file2.txt", vcsRoot, "4:b06a290a363b"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
191 assertEquals(new String(content), "bbb"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
192 content = myVcs.getContent("dir1/subdir/file2.txt", vcsRoot, "5:1d2cc6f3bc29"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
193 assertEquals(new String(content), "modified\r\nbbb"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
194 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
195 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
196 public void test_get_content_in_branch() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
197 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
198 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
199 byte[] content = myVcs.getContent("file_in_branch.txt", vcsRoot, "8:04c3ae4c6312"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
200 assertEquals(new String(content), "file from the test_branch\r\nfile modified"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
201 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
202 |
397
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
203 public void get_content_of_non_existing_file_should_throw_exception() throws Exception { |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
204 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
205 |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
206 try { |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
207 myVcs.getContent("non/existing/file", vcsRoot, "8:04c3ae4c6312"); |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
208 fail("getContent() should throw exception for non-existing file"); |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
209 } catch (VcsException e) { |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
210 assertTrue(true); |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
211 } |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
212 } |
36b1bc5add89
Method getContent() should throw exception for non-existing files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
380
diff
changeset
|
213 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
214 public void test_test_connection() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
215 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
216 vcsRoot.addProperty(Constants.REPOSITORY_PROP, "/some/non/existent/path"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
217 try { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
218 myVcs.getTestConnectionSupport().testConnection(vcsRoot); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
219 fail("Exception expected"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
220 } catch (VcsException e) { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
221 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
222 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
223 |
430
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
224 |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
225 public void should_throw_friendly_exception_when_cannot_run_hg() throws Exception { |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
226 VcsRootImpl root = createVcsRoot(simpleRepo()); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
227 File nonExistingHg = myTempFiles.createTempFile(); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
228 delete(nonExistingHg); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
229 String nonExistingHgPath = nonExistingHg.getAbsolutePath(); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
230 root.addProperty(Constants.HG_COMMAND_PATH_PROP, nonExistingHgPath); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
231 try { |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
232 myVcs.getTestConnectionSupport().testConnection(root); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
233 fail("Exception expected"); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
234 } catch (VcsException e) { |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
235 assertEquals(e.getMessage(), "Cannot find mercurial executable at path '" + nonExistingHgPath + "'"); |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
236 } |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
237 } |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
238 |
3600b68a4c0c
TW-21403 better error message when hg not found
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
429
diff
changeset
|
239 |
790
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
240 @TestFor(issues = "TW-36251") |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
241 public void exception_should_contain_no_password_when_password_is_escaped() throws Exception { |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
242 String pwd = "pa{{word";//'{' requires escaping |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
243 String escapedPwd = "pa%7B%7Bword"; |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
244 VcsRootImpl root = vcsRoot().withUrl("http://acme.com").withUserName("user").withPassword(pwd).build(); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
245 File nonExistingHg = myTempFiles.createTempFile(); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
246 delete(nonExistingHg); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
247 String nonExistingHgPath = nonExistingHg.getAbsolutePath(); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
248 root.addProperty(Constants.HG_COMMAND_PATH_PROP, nonExistingHgPath); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
249 try { |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
250 myVcs.getTestConnectionSupport().testConnection(root); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
251 fail("Exception expected"); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
252 } catch (VcsException e) { |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
253 String msg = e.getCause().getMessage(); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
254 assertFalse(msg.contains(pwd)); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
255 assertFalse(msg.contains(escapedPwd)); |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
256 } |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
257 } |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
258 |
914a0b473c45
TW-36251 mask escaped password
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
732
diff
changeset
|
259 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
260 public void test_tag() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
261 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
262 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
263 String actualTag = myVcs.label("new:tag", "1:1d446e82d356", vcsRoot, new CheckoutRules("")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
264 assertEquals(actualTag, "new_tag"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
265 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
266 // check the tag is pushed to the parent repository |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
474
diff
changeset
|
267 MercurialCommandLine cli = new MercurialCommandLine(); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
268 cli.setExePath(vcsRoot.getProperty(Constants.HG_COMMAND_PATH_PROP)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
269 cli.setWorkDirectory(vcsRoot.getProperty(Constants.REPOSITORY_PROP)); |
493
236d0866a45f
Make tests independent from mercurial settings on agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
270 cli.setEnvParams(map("HGRCPATH", "")); |
504 | 271 cli.setPassParentEnvs(true); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
272 cli.addParameter("tags"); |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
474
diff
changeset
|
273 CommandResult res = CommandUtil.runCommand(cli, new CommandSettings()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
274 assertTrue(res.getStdout().contains("new_tag")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
275 assertTrue(res.getStdout().contains("1:1d446e82d356")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
276 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
277 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
278 public void test_tag_in_branch() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
279 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
280 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
281 String actualTag = myVcs.label("branch_tag", "7:376dcf05cd2a", vcsRoot, new CheckoutRules("")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
282 assertEquals(actualTag, "branch_tag"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
283 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
284 // check the tag is pushed to the parent repository |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
474
diff
changeset
|
285 MercurialCommandLine cli = new MercurialCommandLine(); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
286 cli.setExePath(vcsRoot.getProperty(Constants.HG_COMMAND_PATH_PROP)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
287 cli.setWorkDirectory(vcsRoot.getProperty(Constants.REPOSITORY_PROP)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
288 cli.addParameter("tags"); |
493
236d0866a45f
Make tests independent from mercurial settings on agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
289 cli.setEnvParams(map("HGRCPATH", "")); |
504 | 290 cli.setPassParentEnvs(true); |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
474
diff
changeset
|
291 CommandResult res = CommandUtil.runCommand(cli, new CommandSettings()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
292 assertTrue(res.getStdout().contains("branch_tag")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
293 assertTrue(res.getStdout().contains("7:376dcf05cd2a")); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
294 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
295 |
241
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
296 |
605
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
297 public void tag_should_be_created_in_branch_to_which_tagged_revision_belongs() throws Exception { |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
298 File remoteRepo = copyRepository(myTempFiles, myRep2Path); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
299 VcsRoot root = vcsRoot().withUrl(remoteRepo.getCanonicalPath()).withBranch("default").build(); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
300 RepositoryStateData beforeLabelState = myVcs.getCollectChangesPolicy().getCurrentState(root); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
301 String topicCurrentVersion = beforeLabelState.getBranchRevisions().get("topic"); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
302 myVcs.label("label_in_branch", topicCurrentVersion, root, CheckoutRules.DEFAULT); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
303 RepositoryStateData afterLabelState = myVcs.getCollectChangesPolicy().getCurrentState(root); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
304 assertEquals(beforeLabelState.getBranchRevisions().get("default"), afterLabelState.getBranchRevisions().get("default")); |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
305 assertNotEquals(beforeLabelState.getBranchRevisions().get("topic"), afterLabelState.getBranchRevisions().get("topic"));//topic changed => tag was created there |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
306 } |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
307 |
0e21f908b10d
TW-28776 create a tag in branch to which the labeled revision belongs
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
604
diff
changeset
|
308 |
474
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
309 @TestFor(issues = "TW-10076") |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
310 public void should_allow_to_ignore_changes_where_all_files_excluded() throws Exception { |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
311 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
312 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, "43023ea3f13b", "a2672ee13212", new CheckoutRules("-:.hgtags")); |
474
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
313 assertEquals(changes.size(), 1); |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
314 assertTrue(changes.get(0).isCanBeIgnored()); |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
315 } |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
316 |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
317 |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
318 @TestFor(issues = "TW-10076") |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
319 public void should_not_allow_to_ignore_close_branch_commits() throws Exception { |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
320 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
321 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, "df04faa7575a", "43023ea3f13b", CheckoutRules.DEFAULT); |
474
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
322 assertEquals(changes.size(), 2); |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
323 assertEquals(changes.get(1).getChangeCount(), 0); |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
324 assertFalse(changes.get(1).isCanBeIgnored()); |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
325 } |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
326 |
6b447cd40492
TW-10076 allow to ignore commits where all files excluded by checkout rules
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
448
diff
changeset
|
327 |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
328 public void test_tag_with_specified_username() throws IOException, VcsException { |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
329 final String customUserForTag = "John Doe <john@some.org>"; |
443
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
433
diff
changeset
|
330 File repository = copyRepository(myTempFiles, simpleRepo()); |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
331 VcsRoot root = vcsRoot().withUrl(repository.getAbsolutePath()).withUserForTag(customUserForTag).build(); |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
332 |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
333 myVcs.label("tag_by_specified_user", "10:9c6a6b4aede0", root, CheckoutRules.DEFAULT); |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
334 |
696
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
335 RepositoryStateData state = myVcs.getCollectChangesPolicy().getCurrentState(root); |
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
336 String currentVersion = state.getBranchRevisions().get(state.getDefaultBranchName()); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
337 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, "10:9c6a6b4aede0", currentVersion, CheckoutRules.DEFAULT); |
371
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
338 assertEquals(changes.size(), 1); |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
339 assertEquals(changes.get(0).getUserName(), customUserForTag); |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
340 } |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
341 |
24d926f22e85
TW-16045 allow specify username for tags
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
347
diff
changeset
|
342 |
687
e68ae2084759
Run test only in modern mercurial
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
686
diff
changeset
|
343 @RequiredHgVersion(min = "2.7") |
e68ae2084759
Run test only in modern mercurial
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
686
diff
changeset
|
344 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") |
e68ae2084759
Run test only in modern mercurial
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
686
diff
changeset
|
345 public void unicode_in_filename(@NotNull HgVersion _) throws Exception { |
686
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
346 File repo = copyRepository(myTempFiles, new File("mercurial-tests/testData/unicodeFileName").getAbsolutePath()); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
347 VcsRoot root = vcsRoot().withUrl(repo.getAbsolutePath()) |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
348 .withSubrepoChanges(false) |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
349 .withSubreposInPatch(false) |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
350 .withArchiveForPatch(true) |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
351 .build(); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
352 |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
353 buildPatch(myVcs, root, null, "51677e03dc19", CheckoutRules.DEFAULT); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
354 |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
355 buildPatch(myVcs, root, "54044489d391", "51677e03dc19", CheckoutRules.DEFAULT); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
356 } |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
357 |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
358 |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
359 public void clean_patch_from_archive() throws Exception { |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
360 setName("patch3"); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
361 File repository = copyRepository(myTempFiles, simpleRepo()); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
362 VcsRoot root = vcsRoot().withUrl(repository.getAbsolutePath()) |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
363 .withBranch("test_branch") |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
364 .withArchiveForPatch(true) |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
365 .build(); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
366 ByteArrayOutputStream output = buildPatch(myVcs, root, null, "7:376dcf05cd2a", CheckoutRules.DEFAULT); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
367 checkPatchResult(output.toByteArray()); |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
368 } |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
369 |
1efd1846f00a
Add an option for using tar archive for building a full patch
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
644
diff
changeset
|
370 |
241
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
371 public void labeling_should_not_populate_files_in_local_mirror() throws Exception { |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
372 VcsRootImpl root = createVcsRoot(simpleRepo()); |
696
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
373 myVcs.getCollectChangesPolicy().getCurrentState(root); |
241
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
374 File mirror = myVcs.getMirrorManager().getMirrorDir(root.getProperty(Constants.REPOSITORY_PROP)); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
375 File[] files = mirror.listFiles(); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
376 assertEquals(files.length, 1); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
377 assertEquals(files[0].getName(), ".hg"); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
378 |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
379 myVcs.label("v1.0", "7:376dcf05cd2a", root, new CheckoutRules("")); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
380 |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
381 files = mirror.listFiles(); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
382 assertEquals(files.length, 1); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
383 assertEquals(files[0].getName(), ".hg"); |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
384 } |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
385 |
ffd7234f9d1f
test to reproduce TW-16278
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
221
diff
changeset
|
386 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
387 public void test_collect_changes_in_branch() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
388 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
389 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
390 // fromVersion(6:b9deb9a1c6f4) is not in the branch (it is in the default branch) |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
391 List<ModificationData> changes = collectChanges(vcsRoot, "6:b9deb9a1c6f4", "7:376dcf05cd2a", CheckoutRules.DEFAULT); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
392 assertEquals(1, changes.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
393 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
394 ModificationData md1 = changes.get(0); |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
395 assertEquals(md1.getVersion(), "376dcf05cd2a"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
396 assertEquals(md1.getDescription(), "new file added in the test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
397 List<VcsChange> files1 = md1.getChanges(); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
398 assertEquals(1, files1.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
399 assertEquals(VcsChangeInfo.Type.ADDED, files1.get(0).getType()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
400 assertEquals(normalizePath(files1.get(0).getRelativeFileName()), "file_in_branch.txt"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
401 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
402 changes = collectChanges(vcsRoot, "7:376dcf05cd2a", "8:04c3ae4c6312", CheckoutRules.DEFAULT); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
403 assertEquals(1, changes.size()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
404 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
405 md1 = changes.get(0); |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
406 assertEquals(md1.getVersion(), "04c3ae4c6312"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
407 assertEquals(md1.getDescription(), "file modified"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
408 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
409 |
588
868916a31d88
Fix incremental patch for commits with removes only
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
586
diff
changeset
|
410 public void incremental_patch_for_commit_with_deletes_only() throws Exception { |
868916a31d88
Fix incremental patch for commits with removes only
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
586
diff
changeset
|
411 setName("inc_patch_deletes_only"); |
868916a31d88
Fix incremental patch for commits with removes only
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
586
diff
changeset
|
412 VcsRoot root = createVcsRoot(simpleRepo(), "test_remove"); |
868916a31d88
Fix incremental patch for commits with removes only
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
586
diff
changeset
|
413 checkPatchResult(buildPatch(myVcs, root, "9c6a6b4aede0", "e6935c9c80bf", CheckoutRules.DEFAULT).toByteArray()); |
868916a31d88
Fix incremental patch for commits with removes only
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
586
diff
changeset
|
414 } |
868916a31d88
Fix incremental patch for commits with removes only
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
586
diff
changeset
|
415 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
416 public void test_full_patch_from_branch() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
417 setName("patch3"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
418 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
419 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
420 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, null, "7:376dcf05cd2a", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
421 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
422 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
423 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
424 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
425 public void test_full_patch_from_branch_with_checkout_rules() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
426 setName("patch3_checkout_rules1"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
427 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
428 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
429 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, null, "7:376dcf05cd2a", new CheckoutRules("+:.=>path")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
430 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
431 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
432 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
433 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
434 public void test_full_patch_from_branch_with_checkout_rules_mapped_and_skipped() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
435 setName("patch3_checkout_rules2"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
436 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
437 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
438 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, null, "7:376dcf05cd2a", new CheckoutRules("+:dir1=>path/dir1\n+:dir with space")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
439 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
440 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
441 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
442 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
443 public void test_incremental_patch_from_branch() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
444 setName("patch4"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
445 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo(), "test_branch"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
446 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
447 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, "7:376dcf05cd2a", "8:04c3ae4c6312", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
448 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
449 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
450 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
451 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
452 @Test(enabled = false) |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
453 public void support_anchor_branch_notation() throws IOException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
454 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
455 String repPath = vcsRoot.getProperty(Constants.REPOSITORY_PROP); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
456 vcsRoot.addProperty(Constants.REPOSITORY_PROP, repPath + "#test_branch"); |
429
04eab204ba39
Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
426
diff
changeset
|
457 HgVcsRoot hgRoot = new HgVcsRoot(vcsRoot); |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
412
diff
changeset
|
458 assertEquals("test_branch", hgRoot.getBranchName()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
459 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
460 vcsRoot.addProperty(Constants.REPOSITORY_PROP, repPath + "#"); |
429
04eab204ba39
Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
426
diff
changeset
|
461 hgRoot = new HgVcsRoot(vcsRoot); |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
412
diff
changeset
|
462 assertEquals("default", hgRoot.getBranchName()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
463 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
464 vcsRoot.addProperty(Constants.REPOSITORY_PROP, repPath); |
429
04eab204ba39
Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
426
diff
changeset
|
465 hgRoot = new HgVcsRoot(vcsRoot); |
426
c91c4f1ebd53
Settings -> HgVcsRoot
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
412
diff
changeset
|
466 assertEquals("default", hgRoot.getBranchName()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
467 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
468 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
469 public void build_patch_using_custom_clone_path() throws IOException, VcsException { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
470 setName("cleanPatch1"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
471 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
472 File cloneDir = myTempFiles.createTempDir(); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
473 vcsRoot.addProperty(Constants.SERVER_CLONE_PATH_PROP, cloneDir.getAbsolutePath()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
474 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
475 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, null, "4:b06a290a363b", new CheckoutRules("")); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
476 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
477 checkPatchResult(output.toByteArray()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
478 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
479 assertTrue(new File(cloneDir, new File(vcsRoot.getProperty(Constants.REPOSITORY_PROP)).getName()).isDirectory()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
480 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
481 |
411
490024d8e5fd
Test patch from newer revision to earlier
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
482 public void build_patch_from_newer_revision_to_earlier() throws Exception { |
490024d8e5fd
Test patch from newer revision to earlier
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
483 setName("patch5"); |
490024d8e5fd
Test patch from newer revision to earlier
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
484 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
485 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, "6:b9deb9a1c6f4", "3:9522278aa38d", CheckoutRules.DEFAULT); |
411
490024d8e5fd
Test patch from newer revision to earlier
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
486 checkPatchResult(output.toByteArray()); |
490024d8e5fd
Test patch from newer revision to earlier
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
487 } |
490024d8e5fd
Test patch from newer revision to earlier
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
488 |
412
5d4351306d57
Build full patch if cannot build incremental one
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
411
diff
changeset
|
489 public void build_patch_from_unknown_revision() throws Exception { |
5d4351306d57
Build full patch if cannot build incremental one
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
411
diff
changeset
|
490 setName("patch6"); |
5d4351306d57
Build full patch if cannot build incremental one
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
411
diff
changeset
|
491 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
492 ByteArrayOutputStream output = buildPatch(myVcs, vcsRoot, "6:hahahahahaha", "3:9522278aa38d", new CheckoutRules("+:.=>path")); |
412
5d4351306d57
Build full patch if cannot build incremental one
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
411
diff
changeset
|
493 checkPatchResult(output.toByteArray()); |
5d4351306d57
Build full patch if cannot build incremental one
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
411
diff
changeset
|
494 } |
5d4351306d57
Build full patch if cannot build incremental one
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
411
diff
changeset
|
495 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
496 private String mergeCommittsRepo() { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
497 return new File("mercurial-tests/testData/rep2").getAbsolutePath(); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
498 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
499 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
500 public void test_collect_changes_between_two_different_roots() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
501 VcsRootImpl defaultRoot = createVcsRoot(mergeCommittsRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
502 VcsRootImpl branchRoot = createVcsRoot(mergeCommittsRepo(), "test"); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
503 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(defaultRoot, "11:48177654181c", branchRoot, "10:fc524efc2bc4", CheckoutRules.DEFAULT); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
504 assertEquals(changes.size(), 2); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
505 |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
506 assertEquals(changes.get(0).getVersion(), "8c44244d6645"); |
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
507 assertEquals(changes.get(1).getVersion(), "fc524efc2bc4"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
508 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
509 |
274
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
510 public void collectChanges_should_return_all_changes_from_branch() throws Exception { |
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
511 VcsRootImpl defaultBranchRoot = createVcsRoot(myRep2Path, "default"); |
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
512 VcsRootImpl personalBranchRoot = createVcsRoot(myRep2Path, "personal-branch"); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
513 List<ModificationData> modifications = myVcs.getCollectChangesPolicy().collectChanges(defaultBranchRoot, "16:505c5b9d01e6", personalBranchRoot, "17:9ec402c74298", CheckoutRules.DEFAULT); |
274
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
514 assertEquals(3, modifications.size()); |
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
515 } |
5cbb5ae712e9
Add test for TW-17797
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
271
diff
changeset
|
516 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
517 public void test_collect_changes_merge() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
518 VcsRootImpl vcsRoot = createVcsRoot(mergeCommittsRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
519 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
520 List<ModificationData> changes = collectChanges(vcsRoot, "1:a3d15477d297", "4:6eeb8974fe67", CheckoutRules.DEFAULT); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
521 assertEquals(changes.size(), 3); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
522 |
445
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
523 assertEquals(changes.get(0).getVersion(), "db8a04d262f3"); |
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
524 assertEquals(changes.get(1).getVersion(), "2538c02bafeb"); |
b47cfe5cbaba
Do not include revnum in revision
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
444
diff
changeset
|
525 assertEquals(changes.get(2).getVersion(), "6eeb8974fe67"); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
526 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
527 assertFiles(Arrays.asList("A dir1/file1.txt"), changes.get(0)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
528 assertFiles(Arrays.asList("A dir2/file2.txt"), changes.get(1)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
529 assertFiles(Arrays.asList("A dir1/file1.txt", "A dir2/file2.txt"), changes.get(2)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
530 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
531 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
532 public void test_collect_changes_merge_conflict() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
533 VcsRootImpl vcsRoot = createVcsRoot(mergeCommittsRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
534 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
535 List<ModificationData> changes = collectChanges(vcsRoot, "6:6066b677d026", "8:b6e2d176fe8e", CheckoutRules.DEFAULT); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
536 assertEquals(changes.size(), 2); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
537 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
538 assertFiles(Arrays.asList("A dir4/file41.txt"), changes.get(0)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
539 assertFiles(Arrays.asList("M dir4/file41.txt", "A dir4/file42.txt", "A dir4/file43.txt", "R dir3/file3.txt"), changes.get(1)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
540 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
541 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
542 public void test_collect_changes_merge_conflict_named_branch() throws Exception { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
543 VcsRootImpl vcsRoot = createVcsRoot(mergeCommittsRepo()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
544 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
545 List<ModificationData> changes = collectChanges(vcsRoot, "8:b6e2d176fe8e", "12:1e620196c4b6", CheckoutRules.DEFAULT); |
312
8deb526363f5
TW-17882 report changes from the merged named branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
310
diff
changeset
|
546 assertEquals(changes.size(), 4); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
547 |
312
8deb526363f5
TW-17882 report changes from the merged named branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
310
diff
changeset
|
548 assertFiles(Arrays.asList("A dir6/file6.txt"), changes.get(2)); |
8deb526363f5
TW-17882 report changes from the merged named branches
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
310
diff
changeset
|
549 assertFiles(Arrays.asList("M dir6/file6.txt", "A dir5/file5.txt"), changes.get(3)); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
550 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
551 |
260 | 552 //TW-17530 |
553 public void test_collect_changes_with_exclude_checkout_rules() throws Exception { | |
554 VcsRootImpl root = createVcsRoot(simpleRepo()); | |
555 collectChanges(root, "0:9875b412a788", "10:9c6a6b4aede0", new CheckoutRules("-:dir1\n" + | |
556 "-:dir with space")); | |
557 } | |
558 | |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
559 //TW-10172 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
560 public void should_not_fill_server_clone_path() { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
561 assertFalse(myVcs.getDefaultVcsProperties().containsKey(Constants.SERVER_CLONE_PATH_PROP)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
562 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
563 Map<String, String> rootProperties = new HashMap<String, String>() {{ |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
564 put(Constants.HG_COMMAND_PATH_PROP, "hg"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
565 put(Constants.REPOSITORY_PROP, "http://somewhere.com/path"); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
566 }}; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
567 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
568 assertFalse(rootProperties.containsKey(Constants.SERVER_CLONE_PATH_PROP)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
569 myVcs.getVcsPropertiesProcessor().process(rootProperties); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
570 assertFalse(rootProperties.containsKey(Constants.SERVER_CLONE_PATH_PROP)); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
571 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
572 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
573 public void use_compressed_transfer_by_default() { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
574 VcsRootImpl root = new VcsRootImpl(1, Constants.VCS_NAME); |
597 | 575 root.setProperties(myVcs.getDefaultVcsProperties()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
576 root.addProperty(Constants.REPOSITORY_PROP, "http://host.com/path"); |
429
04eab204ba39
Remove HgVcsRoot's dependency on HgPathProvider
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
426
diff
changeset
|
577 HgVcsRoot hgRoot = new HgVcsRoot(root); |
502
2755266b7dd5
Use uncompressed transfer explicitly
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
493
diff
changeset
|
578 assertTrue(hgRoot.isUncompressedTransfer()); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
579 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
580 |
183
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
581 |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
582 //TW-15762 |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
583 public void should_use_clone_to_root_parameter() throws IOException, VcsException { |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
584 VcsRootImpl vcsRoot = createVcsRoot(simpleRepo()); |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
585 File cloneDir = myTempFiles.createTempDir(); |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
586 vcsRoot.addProperty(Constants.SERVER_CLONE_PATH_PROP, cloneDir.getAbsolutePath()); |
696
a07f685ce394
Get rid of depricated getCurrentVersion() method
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
687
diff
changeset
|
587 myVcs.getCollectChangesPolicy().getCurrentState(vcsRoot); |
183
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
588 } |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
589 |
58f712889f59
Add test to reproduce TW-15672
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
590 |
377
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
591 public void labeling_should_not_change_vcs_root_settings() throws Exception { |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
592 VcsRootImpl root = createVcsRoot(simpleRepo(), "test_branch"); |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
593 assertNull(root.getProperty(Constants.SERVER_CLONE_PATH_PROP)); |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
594 myVcs.label("branch_tag", "7:376dcf05cd2a", root, CheckoutRules.DEFAULT); |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
595 assertNull(root.getProperty(Constants.SERVER_CLONE_PATH_PROP)); |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
596 } |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
597 |
dbdee21f2893
Labeling should not affect vcs root settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
346
diff
changeset
|
598 |
604 | 599 @TestFor(issues = "TW-24810") |
600 public void do_not_delete_symlinked_dir() throws Exception { | |
601 if (!SystemInfo.isUnix) | |
602 return; | |
603 | |
604 //create a file on the server | |
605 File dirOnTheServer = myTempFiles.createTempDir(); | |
606 File fileOnTheServer = new File(dirOnTheServer, "file.on.server"); | |
607 FileUtil.writeFile(fileOnTheServer, "some text"); | |
608 | |
609 //create a remote repository with symlink pointing to the file on the server | |
610 File repository = copyRepository(myTempFiles, simpleRepo()); | |
771 | 611 ServerHgRepo repo = new ServerHgRepo(new TestCommandSettingsFactory(), myPluginConfig, repository, getHgPath(), new AuthSettings()); |
604 | 612 repo.update().toRevision("9c6a6b4aede0").call(); |
613 new ProcessBuilder("ln", "-s", dirOnTheServer.getCanonicalPath()).directory(repository).start().waitFor(); | |
614 new ProcessBuilder(getHgPath(), "add", dirOnTheServer.getName()).directory(repository).start().waitFor(); | |
615 new ProcessBuilder(getHgPath(), "commit", "-m", "add a symlink").directory(repository).start().waitFor(); | |
616 | |
617 String revisionWithSymlink = repo.branches().call().get("default"); | |
618 | |
619 //build a clean patch on revision wich contain a symlink | |
620 VcsRoot root = vcsRoot().withUrl(repository.getCanonicalPath()).build(); | |
621 buildPatch(myVcs, root, null, revisionWithSymlink, CheckoutRules.DEFAULT); | |
622 | |
623 //check file & dir still exist | |
624 assertTrue(dirOnTheServer.exists()); | |
625 assertTrue(fileOnTheServer.exists()); | |
626 } | |
627 | |
628 | |
432
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
629 public void hg_version_should_not_depend_on_locale() throws IOException, VcsException { |
493
236d0866a45f
Make tests independent from mercurial settings on agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
630 HgRepo repo = new HgRepo(new TestCommandSettingsFactory(), new File(simpleRepo()), Util.getHgPath(), new AuthSettings(null, null)); |
432
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
631 HgVersion defaultLocaleVersion = repo.version().call(); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
632 |
493
236d0866a45f
Make tests independent from mercurial settings on agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
633 VersionCommand russianLocalVersion = new VersionCommand(new TestCommandSettingsFactory().create(), Util.getHgPath(), new File(simpleRepo())) { |
432
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
634 @Override |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
474
diff
changeset
|
635 protected MercurialCommandLine createCommandLine() { |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
474
diff
changeset
|
636 MercurialCommandLine commandLine = super.createCommandLine(); |
432
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
637 Map<String, String> env = commandLine.getEnvParams(); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
638 if (env == null) |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
639 env = new HashMap<String, String>(); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
640 env.put("LANG", "ru_RU"); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
641 env.put("LANGUAGE", "ru_RU"); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
642 env.put("LC_MESSAGE", "ru_RU"); |
493
236d0866a45f
Make tests independent from mercurial settings on agent
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
643 env.put("HGRCPATH", ""); |
432
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
644 commandLine.setEnvParams(env); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
645 return commandLine; |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
646 } |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
647 }; |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
648 |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
649 HgVersion russianLocaleVersion = russianLocalVersion.call(); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
650 assertEquals(russianLocaleVersion, defaultLocaleVersion); |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
651 } |
4a76645fe087
TW-21516 hg version detection should not depend on locale settings
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
408
diff
changeset
|
652 |
446
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
653 public void collect_changes_between_states() throws Exception { |
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
654 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
655 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, |
485 | 656 RepositoryStateData.createVersionState("default", map("default", "1e620196c4b6")), |
657 RepositoryStateData.createVersionState("default", map("default", "505c5b9d01e6", "personal-branch", "96b78d73081d")), | |
446
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
658 CheckoutRules.DEFAULT); |
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
659 assertEquals(changes.size(), 4); |
543
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
660 assertThat(changes, hasItem(modificationData().withVersion("dec47d2d49bf"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
661 assertThat(changes, hasItem(modificationData().withVersion("78e67807f916"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
662 assertThat(changes, hasItem(modificationData().withVersion("96b78d73081d"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
663 assertThat(changes, hasItem(modificationData().withVersion("505c5b9d01e6"))); |
442
6c43663744d9
getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
432
diff
changeset
|
664 } |
6c43663744d9
getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
432
diff
changeset
|
665 |
6c43663744d9
getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
432
diff
changeset
|
666 |
446
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
667 public void collect_changes_between_states_does_not_report_duplicate_changes() throws Exception { |
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
668 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
669 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, |
485 | 670 RepositoryStateData.createVersionState("default", map("default", "8c44244d6645")), |
671 RepositoryStateData.createVersionState("default", map("default", "505c5b9d01e6", "personal-branch", "9ec402c74298")), | |
446
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
672 CheckoutRules.DEFAULT); |
8a1231dc6a2c
Collect changes between states
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
445
diff
changeset
|
673 assertEquals(changes.size(), 8); |
543
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
674 assertThat(changes, hasItem(modificationData().withVersion("9ec402c74298"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
675 assertThat(changes, hasItem(modificationData().withVersion("505c5b9d01e6"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
676 assertThat(changes, hasItem(modificationData().withVersion("96b78d73081d"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
677 assertThat(changes, hasItem(modificationData().withVersion("78e67807f916"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
678 assertThat(changes, hasItem(modificationData().withVersion("dec47d2d49bf"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
679 assertThat(changes, hasItem(modificationData().withVersion("1e620196c4b6"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
680 assertThat(changes, hasItem(modificationData().withVersion("48177654181c"))); |
a157a25fd3af
extract matcher
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
527
diff
changeset
|
681 assertThat(changes, hasItem(modificationData().withVersion("fc524efc2bc4"))); |
442
6c43663744d9
getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
432
diff
changeset
|
682 } |
6c43663744d9
getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
432
diff
changeset
|
683 |
6c43663744d9
getCurrentVersion do pull only when remote repository is updated
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
432
diff
changeset
|
684 |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
685 @RequiredHgVersion(min = "1.7.0") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
686 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
687 public void should_not_report_redundant_changes_after_merge(@NotNull HgVersion _) throws Exception { |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
688 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
689 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, |
552
ba4f9148d39e
Optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
543
diff
changeset
|
690 RepositoryStateData.createVersionState("default", map("default", "505c5b9d01e6", "personal-branch", "9ec402c74298")), |
ba4f9148d39e
Optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
543
diff
changeset
|
691 RepositoryStateData.createVersionState("default", map("default", "df04faa7575a", "personal-branch", "9ec402c74298")), |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
692 CheckoutRules.DEFAULT); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
693 assertEquals(changes.size(), 1); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
694 } |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
695 |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
696 |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
697 @RequiredHgVersion(min = "1.7.0") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
698 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
699 public void should_not_report_duplicate_changes(@NotNull HgVersion _) throws Exception { |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
700 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
701 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, |
555
4f1c0ecc3371
Do not report duplicate changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
553
diff
changeset
|
702 RepositoryStateData.createVersionState("default", map("default", "505c5b9d01e6", "personal-branch", "96b78d73081d")), |
4f1c0ecc3371
Do not report duplicate changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
553
diff
changeset
|
703 RepositoryStateData.createVersionState("default", map("default", "df04faa7575a", "personal-branch", "9ec402c74298")), |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
704 CheckoutRules.DEFAULT); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
705 assertThat(changes, not(hasItem(modificationData().withVersion("dec47d2d49bf")))); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
706 } |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
707 |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
708 |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
709 @RequiredHgVersion(min = "1.7.0") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
710 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
711 public void should_not_report_duplicate_changes2(@NotNull HgVersion _) throws Exception { |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
712 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
713 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, |
557
2b8299ba321d
Speed up changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
555
diff
changeset
|
714 RepositoryStateData.createVersionState("default", map("default", "528572bbf77b", "personal-branch", "27184c50d7ef")), |
2b8299ba321d
Speed up changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
555
diff
changeset
|
715 RepositoryStateData.createVersionState("default", map("default", "4780519e01aa", "personal-branch", "fd50e4842211")), |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
716 CheckoutRules.DEFAULT); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
717 assertThat(changes, not(hasItem(modificationData().withVersion("4dbb87c381be")))); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
718 } |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
719 |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
720 |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
721 @RequiredHgVersion(min = "1.7.0") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
722 @Test(dataProviderClass = HgVersionConstraint.class, dataProvider = "installedHgVersion") |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
723 public void should_not_report_all_changes_in_repository_if_default_branch_is_unrelated(@NotNull HgVersion _) throws Exception { |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
724 VcsRootImpl root = createVcsRoot(myRep2Path); |
567
27cd2503cea3
Extract MercurialCollectChangesPolicy
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
566
diff
changeset
|
725 List<ModificationData> changes = myVcs.getCollectChangesPolicy().collectChanges(root, |
561 | 726 RepositoryStateData.createVersionState("NULL", map("NULL", "1f355761350e")), |
727 RepositoryStateData.createVersionState("NULL", map("NULL", "1f355761350e", "personal-branch", "fd50e4842211")), | |
564
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
728 CheckoutRules.DEFAULT); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
729 assertEquals(0, changes.size()); |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
730 } |
d012388935fb
TW-26379 optimize changes collecting
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
504
diff
changeset
|
731 |
555
4f1c0ecc3371
Do not report duplicate changes
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
553
diff
changeset
|
732 |
609
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
733 @TestFor(issues = "TW-29998") |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
734 public void test_rev_not_found() throws Exception { |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
735 VcsRoot root = createVcsRoot(myRep2Path); |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
736 //there should be no exception, even though 010101010101 is not in the repository |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
737 myVcs.getCollectChangesPolicy().collectChanges(root, |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
738 RepositoryStateData.createVersionState("default", map("default", "737c6f57ef84", "unknown.branch", "010101010101")), |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
739 RepositoryStateData.createVersionState("default", map("default", "4780519e01aa", "topic", "fd50e4842211")), |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
740 CheckoutRules.DEFAULT); |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
741 } |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
742 |
86e187882960
Test for TW-29998
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
605
diff
changeset
|
743 |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
744 private void assertFiles(final List<String> expectedFiles, final ModificationData modificationData) { |
289
86ae99a7c5d6
Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
260
diff
changeset
|
745 Set<String> actualFiles = new HashSet<String>(); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
746 for (VcsChange vc: modificationData.getChanges()) { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
747 actualFiles.add(toFileStatus(vc.getType()) + " " + vc.getRelativeFileName()); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
748 } |
289
86ae99a7c5d6
Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
260
diff
changeset
|
749 Assert.assertEquals("Actual files: " + actualFiles.toString(), new HashSet<String>(expectedFiles), actualFiles); |
174
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
750 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
751 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
752 private String toFileStatus(VcsChange.Type type) { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
753 switch (type) { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
754 case ADDED: |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
755 return "A"; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
756 case REMOVED: |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
757 return "R"; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
758 case CHANGED: |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
759 return "M"; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
760 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
761 return "?"; |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
762 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
763 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
764 private Object normalizePath(final String path) { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
765 return path.replace(File.separatorChar, '/'); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
766 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
767 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
768 |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
769 public void test_collect_changes_using_checkout_rules() { |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
770 assertTrue(myVcs.getCollectChangesPolicy() instanceof CollectChangesByCheckoutRules); |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
771 } |
2faaa84c0896
Fix TW-15195: Add option in UI to do --uncompressed clone.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
diff
changeset
|
772 } |
338
d31d7c81b637
Support subrepositories while building clean patch.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
329
diff
changeset
|
773 |