Mercurial > hg > mercurial
annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Util.java @ 1045:71d765469b2d
fixed function name
author | victory.bedrosova |
---|---|
date | Tue, 19 Jan 2021 22:53:01 +0100 |
parents | 7bf4d943d5bb |
children |
rev | line source |
---|---|
732
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
1 /* |
976 | 2 * Copyright 2000-2018 JetBrains s.r.o. |
732
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
3 * |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
4 * Licensed under the Apache License, Version 2.0 (the "License"); |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
5 * you may not use this file except in compliance with the License. |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
6 * You may obtain a copy of the License at |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
7 * |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
8 * http://www.apache.org/licenses/LICENSE-2.0 |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
9 * |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
10 * Unless required by applicable law or agreed to in writing, software |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
11 * distributed under the License is distributed on an "AS IS" BASIS, |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
13 * See the License for the specific language governing permissions and |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
14 * limitations under the License. |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
15 */ |
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
614
diff
changeset
|
16 |
128
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
17 package jetbrains.buildServer.buildTriggers.vcs.mercurial; |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
18 |
443
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
19 import jetbrains.buildServer.TempFiles; |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
20 import jetbrains.buildServer.util.FileUtil; |
614
f6efcbc52d11
For non-windows OSes assume that mercurial is in path instead of using bundled win executable
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
513
diff
changeset
|
21 import com.intellij.openapi.util.SystemInfo; |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
22 import jetbrains.buildServer.vcs.CheckoutRules; |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
23 import jetbrains.buildServer.vcs.VcsException; |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
24 import jetbrains.buildServer.vcs.VcsRoot; |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
25 import jetbrains.buildServer.vcs.patches.PatchBuilderImpl; |
310
7bb3cf4e18f8
Use jmock-2.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
26 import org.jetbrains.annotations.NotNull; |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
27 import org.jetbrains.annotations.Nullable; |
310
7bb3cf4e18f8
Use jmock-2.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
28 |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
29 import java.io.ByteArrayOutputStream; |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
128
diff
changeset
|
30 import java.io.File; |
128
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
31 import java.io.IOException; |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
32 |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
33 /** |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
34 * @author dmitry.neverov |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
35 */ |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
36 public final class Util { |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
37 |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
38 private Util() {} |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
39 |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
40 public static String getHgPath() throws IOException { |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
41 String providedHg = System.getenv(Constants.HG_PATH_ENV); |
614
f6efcbc52d11
For non-windows OSes assume that mercurial is in path instead of using bundled win executable
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
513
diff
changeset
|
42 if (providedHg != null) |
128
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
43 return providedHg; |
614
f6efcbc52d11
For non-windows OSes assume that mercurial is in path instead of using bundled win executable
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
513
diff
changeset
|
44 if (SystemInfo.isWindows) |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
128
diff
changeset
|
45 return new File("mercurial-tests/testData/bin/hg.exe").getAbsolutePath(); |
614
f6efcbc52d11
For non-windows OSes assume that mercurial is in path instead of using bundled win executable
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
513
diff
changeset
|
46 return "hg"; //assume it is somethere in the $PATH |
128
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
47 } |
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
48 |
310
7bb3cf4e18f8
Use jmock-2.x
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
49 |
443
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
50 public static File copyRepository(@NotNull TempFiles tempFiles, @NotNull String repPath) throws IOException { |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
51 File tempDir = tempFiles.createTempDir(); |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
52 copyRepository(new File(repPath), tempDir); |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
53 return tempDir; |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
54 } |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
55 |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
56 public static void copyRepository(@NotNull File src, @NotNull File dst) throws IOException { |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
57 FileUtil.copyDir(src, dst); |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
58 if (new File(dst, "hg").isDirectory()) |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
59 FileUtil.rename(new File(dst, "hg"), new File(dst, ".hg")); |
d0f80762461a
Test refactoring: get rid of LocalRepositoryUtil
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
430
diff
changeset
|
60 } |
444
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
61 |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
62 public static ByteArrayOutputStream buildPatch(@NotNull MercurialVcsSupport vcs, |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
63 @NotNull VcsRoot vcsRoot, |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
64 @Nullable String from, |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
65 @NotNull String to, |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
66 @NotNull CheckoutRules rules) throws IOException, VcsException { |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
67 ByteArrayOutputStream output = new ByteArrayOutputStream(); |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
68 PatchBuilderImpl builder = new PatchBuilderImpl(output); |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
69 vcs.buildPatch(vcsRoot, from, to, builder, rules); |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
70 builder.close(); |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
71 return output; |
a05eca69fc01
Ensure plugin works without revnums in revisions
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
443
diff
changeset
|
72 } |
128
5ff5ff61f7d4
Extract Util class and method getHgPath(). Now tests can be ran using installed hg in the system.
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
73 } |