annotate mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommitCommand.java @ 999:1b1cc811e1b6 Jaipur-2018.1.x

Jaipur-2018.1.x branch created
author pavel.sher
date Thu, 21 Jun 2018 17:37:32 +0200
parents 7bf4d943d5bb
children
rev   line source
732
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
1 /*
976
7bf4d943d5bb Update copyright
pavel.sher
parents: 926
diff changeset
2 * Copyright 2000-2018 JetBrains s.r.o.
732
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
3 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
4 * Licensed under the Apache License, Version 2.0 (the "License");
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
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: 672
diff changeset
6 * You may obtain a copy of the License at
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
7 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
8 * http://www.apache.org/licenses/LICENSE-2.0
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
9 *
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
10 * Unless required by applicable law or agreed to in writing, software
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
11 * distributed under the License is distributed on an "AS IS" BASIS,
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
13 * See the License for the specific language governing permissions and
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
14 * limitations under the License.
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
15 */
31a1aca3305c Update copyright
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 672
diff changeset
16
631
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
17 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
18
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
19 import jetbrains.buildServer.vcs.VcsException;
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
20 import org.jetbrains.annotations.NotNull;
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
21
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
22 import java.io.File;
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
23
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
24 public class CommitCommand extends BaseCommand {
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
25
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
26 private String myCommitMessage;
672
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
27 private String myUser;
631
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 public CommitCommand(@NotNull CommandSettings commandSettings,
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
30 @NotNull String hgPath,
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
31 @NotNull File workingDir) {
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
32 super(commandSettings, hgPath, workingDir);
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
33 }
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
34
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
35 public CommitCommand message(@NotNull String commitMessage) {
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
36 myCommitMessage = commitMessage;
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
37 return this;
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
38 }
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
39
672
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
40 public CommitCommand by(String user) {
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
41 myUser = user;
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
42 return this;
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
43 }
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
44
867
80d695d15cc0 Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
45 public int call() throws VcsException {
631
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
46 MercurialCommandLine cmd = createCommandLine();
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
47 cmd.addParameter("commit");
645
4cf1ab3cd162 Merge in subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 631
diff changeset
48 cmd.addParameter("-S");
631
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
49 if (myCommitMessage != null)
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
50 cmd.addParameters("-m", myCommitMessage);
672
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
51 if (myUser != null)
8b09ec36fbef Ability to specify an author of the merge commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 645
diff changeset
52 cmd.addParameters("--user", myUser);
908
b39494a5ff96 TW-39095 handle commit messages with non-ascii symbols
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 890
diff changeset
53 cmd.addEnvParam("HGENCODING", "UTF-8");
926
06ecc863293a More robust commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 908
diff changeset
54 cmd.addEnvParam("HGENCODINGMODE", "replace");
867
80d695d15cc0 Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
55 CommandResult result = runCommand(cmd);
80d695d15cc0 Add CommitSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 732
diff changeset
56 return result.getExitCode();
631
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
57 }
890
771ae1b2f0b1 More command descriptions
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 867
diff changeset
58
771ae1b2f0b1 More command descriptions
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 867
diff changeset
59 @NotNull
771ae1b2f0b1 More command descriptions
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 867
diff changeset
60 @Override
771ae1b2f0b1 More command descriptions
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 867
diff changeset
61 protected String getDescription() {
771ae1b2f0b1 More command descriptions
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 867
diff changeset
62 return "hg commit";
771ae1b2f0b1 More command descriptions
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 867
diff changeset
63 }
631
d28d52336ce5 Implement MergeSupport
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
64 }