Mercurial > hg > mercurial
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 | 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 } |