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
7bf4d943d5bb Update copyright
pavel.sher
parents: 732
diff changeset
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 }