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 }