Mercurial > hg > mercurial
annotate mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PushCommand.java @ 858:61a373476058
TW-37277 don't fail id and push commands if stderr is not empty
Mercurial write warnings about certificates into stderr, but the command
actually works, there is no reason to fail it.
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Wed, 16 Jul 2014 16:18:21 +0200 |
parents | 63babe8e01a1 |
children | 771ae1b2f0b1 |
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:
515
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 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
18 import jetbrains.buildServer.vcs.VcsException; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
19 import org.jetbrains.annotations.NotNull; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
20 |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
21 import java.io.File; |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
22 |
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 * @author pavel |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
25 */ |
497
ed098534dab4
TW-15304 disable interactive user prompt
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
480
diff
changeset
|
26 public class PushCommand extends AuthCommand { |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
27 |
749
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
28 private String myBookmark; |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
29 private String myRepositoryUrl; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
30 |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
31 public PushCommand(@NotNull CommandSettings commandSettings, |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
32 @NotNull String hgPath, |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
33 @NotNull File workingDir, |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
34 @NotNull AuthSettings authSettings) { |
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
35 super(commandSettings, hgPath, workingDir, authSettings); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
36 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
37 |
749
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
38 public PushCommand bookmark(@NotNull String bookmark) { |
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
39 myBookmark = bookmark; |
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
40 return this; |
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
41 } |
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
42 |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
43 public PushCommand toRepository(@NotNull String repositoryUrl) { |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
44 myRepositoryUrl = repositoryUrl; |
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
45 return this; |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
46 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
47 |
399
45f25ca68312
Support local mirrors for subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
367
diff
changeset
|
48 public void call() throws VcsException { |
480
efba721f9a1d
TW-23382 agent logs with info, server logs with debug
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
399
diff
changeset
|
49 MercurialCommandLine cli = createCommandLine(); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
50 cli.addParameter("push"); |
749
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
51 if (myBookmark != null) { |
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
52 cli.addParameters("-B", myBookmark); |
63babe8e01a1
support auto-merge for bookmarks
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
732
diff
changeset
|
53 } |
515
d4c6c9ebbe8a
TW-21014 do not use http url with credentials for push
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
497
diff
changeset
|
54 if (myRepositoryUrl.startsWith("http")) { |
d4c6c9ebbe8a
TW-21014 do not use http url with credentials for push
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
497
diff
changeset
|
55 addHttpAuthParams(cli); |
d4c6c9ebbe8a
TW-21014 do not use http url with credentials for push
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
497
diff
changeset
|
56 cli.addParameter(myRepositoryUrl); |
d4c6c9ebbe8a
TW-21014 do not use http url with credentials for push
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
497
diff
changeset
|
57 } else { |
d4c6c9ebbe8a
TW-21014 do not use http url with credentials for push
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
497
diff
changeset
|
58 cli.addParameter(myAuthSettings.getRepositoryUrlWithCredentials(myRepositoryUrl)); |
d4c6c9ebbe8a
TW-21014 do not use http url with credentials for push
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
497
diff
changeset
|
59 } |
858
61a373476058
TW-37277 don't fail id and push commands if stderr is not empty
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
749
diff
changeset
|
60 runCommand(cli, myCommandSettings); |
266
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
61 } |
643fa1236f4e
Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
181
diff
changeset
|
62 } |