Mercurial > hg > mercurial
annotate mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CatCommand.java @ 802:005ea6b2dc0f
@NotNull
author | eugene.petrenko@jetbrains.com |
---|---|
date | Fri, 30 May 2014 10:25:05 +0200 |
parents | f0327df85b9d |
children | 578eab848c5d |
rev | line source |
---|---|
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
1 /* |
732
31a1aca3305c
Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
2 * Copyright 2000-2014 JetBrains s.r.o. |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
3 * |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
4 * Licensed under the Apache License, Version 2.0 (the "License"); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
5 * you may not use this file except in compliance with the License. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
6 * You may obtain a copy of the License at |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
7 * |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
8 * http://www.apache.org/licenses/LICENSE-2.0 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
9 * |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
10 * Unless required by applicable law or agreed to in writing, software |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
11 * distributed under the License is distributed on an "AS IS" BASIS, |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
13 * See the License for the specific language governing permissions and |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
14 * limitations under the License. |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
15 */ |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
16 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
17 |
417
74487e2c6356
Use shorter temp directory names
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
18 import jetbrains.buildServer.buildTriggers.vcs.mercurial.HgFileUtil; |
743
ff89f023a3c8
change Cat command commandline size (select max possible value)
eugene.petrenko@jetbrains.com
parents:
732
diff
changeset
|
19 import jetbrains.buildServer.buildTriggers.vcs.mercurial.OS; |
478
0a33f3dbd261
Ensure temp dirs are deleted
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
476
diff
changeset
|
20 import jetbrains.buildServer.log.Loggers; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
21 import jetbrains.buildServer.vcs.VcsException; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
22 import org.jetbrains.annotations.NotNull; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
23 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
24 import java.io.File; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
25 import java.io.IOException; |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
26 import java.util.ArrayList; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
27 import java.util.LinkedList; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
28 import java.util.List; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
29 import java.util.Queue; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
30 |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
31 import static java.util.Collections.singletonList; |
478
0a33f3dbd261
Ensure temp dirs are deleted
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
476
diff
changeset
|
32 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.HgFileUtil.deleteDir; |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
33 |
781
3cd449e58f70
Hg arch and cat commands can require an authentication in case of largefiles
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
743
diff
changeset
|
34 public class CatCommand extends AuthCommand { |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
35 private String myRevId; |
743
ff89f023a3c8
change Cat command commandline size (select max possible value)
eugene.petrenko@jetbrains.com
parents:
732
diff
changeset
|
36 |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
37 private List<String> myRelativePaths = new ArrayList<String>(); |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
38 private boolean myCheckForFailure = true; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
39 |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
40 public CatCommand(@NotNull CommandSettings commandSettings, |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
41 @NotNull String hgPath, |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
42 @NotNull File workingDir, |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
43 @NotNull AuthSettings authSettings) { |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
44 super(commandSettings, hgPath, workingDir, authSettings); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
45 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
46 |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
47 public CatCommand files(@NotNull String relativePath) { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
48 myRelativePaths = singletonList(relativePath); |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
49 return this; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
50 } |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
51 |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
52 public CatCommand files(@NotNull List<String> relativePaths) { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
53 myRelativePaths = relativePaths; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
54 return this; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
55 } |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
56 |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
57 public CatCommand setRevId(final String revId) { |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
58 myRevId = revId; |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
59 return this; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
60 } |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
61 |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
62 public CatCommand atRevision(@NotNull ChangeSet cset) { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
63 myRevId = cset.getId(); |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
64 return this; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
65 } |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
66 |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
67 public CatCommand checkForFailure(boolean doCheckForFailure) { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
68 myCheckForFailure = doCheckForFailure; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
69 return this; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
70 } |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
71 |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
72 public File call() throws VcsException { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
73 return execute(myRelativePaths, myCheckForFailure); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
74 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
75 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
76 public File execute(List<String> relPaths) throws VcsException { |
304
e9cdb499350d
Do clean checkout if subrepository URL changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
280
diff
changeset
|
77 return execute(relPaths, true); |
e9cdb499350d
Do clean checkout if subrepository URL changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
280
diff
changeset
|
78 } |
e9cdb499350d
Do clean checkout if subrepository URL changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
280
diff
changeset
|
79 |
e9cdb499350d
Do clean checkout if subrepository URL changed
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
280
diff
changeset
|
80 public File execute(List<String> relPaths, boolean checkFailure) throws VcsException { |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
81 File tempDir = null; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
82 try { |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
83 tempDir = createTmpDir(); |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
84 createDirectories(relPaths, tempDir); |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
85 catFiles(relPaths, checkFailure, tempDir); |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
86 return tempDir; |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
87 } catch (VcsException e) { |
478
0a33f3dbd261
Ensure temp dirs are deleted
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
476
diff
changeset
|
88 deleteDir(tempDir, Loggers.VCS); |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
89 throw e; |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
90 } |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
91 } |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
92 |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
93 private File createTmpDir() throws VcsException { |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
94 try { |
417
74487e2c6356
Use shorter temp directory names
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
95 return HgFileUtil.createTempDir(); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
96 } catch (IOException e) { |
476
aa19481a91c3
Include cause of the error
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
417
diff
changeset
|
97 throw new VcsException("Unable to create temporary directory", e); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
98 } |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
99 } |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
100 |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
101 private void createDirectories(List<String> relPaths, File tempDir) throws VcsException { |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
102 for (String path: relPaths) { |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
103 File parentFile = new File(tempDir, path).getParentFile(); |
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
104 if (!parentFile.isDirectory() && !parentFile.mkdirs()) |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
105 throw new VcsException("Failed to create directory: " + parentFile.getAbsolutePath()); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
106 } |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
107 } |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
108 |
352
1b3be513520e
TW-13178 clean tmp dir when cat command fails
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
339
diff
changeset
|
109 private void catFiles(List<String> relPaths, boolean checkFailure, File tempDir) throws VcsException { |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
110 Queue<String> paths = new LinkedList<String>(relPaths); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
111 while (!paths.isEmpty()) { |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
112 MercurialCommandLine cli = createCommandLine(tempDir); |
743
ff89f023a3c8
change Cat command commandline size (select max possible value)
eugene.petrenko@jetbrains.com
parents:
732
diff
changeset
|
113 int cmdSize = cli.getCommandLineString().length() + 42; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
114 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
115 do { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
116 String path = paths.poll(); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
117 cli.addParameter(path); |
743
ff89f023a3c8
change Cat command commandline size (select max possible value)
eugene.petrenko@jetbrains.com
parents:
732
diff
changeset
|
118 cmdSize += path.length() + 3; //quotes + space |
ff89f023a3c8
change Cat command commandline size (select max possible value)
eugene.petrenko@jetbrains.com
parents:
732
diff
changeset
|
119 } while (cmdSize < OS.getMaxCommandLineSize() && !paths.isEmpty()); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
120 |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
121 runCommand(cli, myCommandSettings.setCheckForFailure(checkFailure)); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
122 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
123 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
124 |
802 | 125 private MercurialCommandLine createCommandLine(@NotNull final File tempDir) { |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
478
diff
changeset
|
126 MercurialCommandLine cli = createCommandLine(); |
781
3cd449e58f70
Hg arch and cat commands can require an authentication in case of largefiles
Dmitry Neverov <dmitry.neverov@gmail.com>
parents:
743
diff
changeset
|
127 addHttpAuthParams(cli); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
128 cli.addParameter("cat"); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
129 cli.addParameter("-o"); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
130 cli.addParameter(tempDir.getAbsolutePath() + File.separator + "%p"); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
131 if (myRevId != null) { |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
132 cli.addParameter("-r"); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
133 cli.addParameter(myRevId); |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
134 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
135 return cli; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
136 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
137 } |