annotate mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ChangeSet.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 10dc26b32c35
rev   line source
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
1 /*
976
7bf4d943d5bb Update copyright
pavel.sher
parents: 732
diff changeset
2 * Copyright 2000-2018 JetBrains s.r.o.
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
3 *
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
4 * Licensed under the Apache License, Version 2.0 (the "License");
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
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: 160
diff changeset
6 * You may obtain a copy of the License at
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
7 *
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
8 * http://www.apache.org/licenses/LICENSE-2.0
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
9 *
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
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: 160
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: 160
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: 160
diff changeset
13 * See the License for the specific language governing permissions and
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
14 * limitations under the License.
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
15 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
16 package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
17
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
18 import org.jetbrains.annotations.NotNull;
654
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
19 import org.jetbrains.annotations.Nullable;
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
20
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
21 import java.util.ArrayList;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
22 import java.util.Date;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
23 import java.util.List;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
24
654
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
25 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.command.HgVcsRoot.DEFAULT_BRANCH_NAME;
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
26
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
27 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
28 * Represents Mercurial change set
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
29 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
30 public class ChangeSet extends ChangeSetRevision {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
31 @NotNull private String myUser;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
32 @NotNull private Date myTimestamp;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
33 private String myDescription;
654
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
34 private String myBranch = DEFAULT_BRANCH_NAME;
276
8c10f5cec37d TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 271
diff changeset
35 private List<ChangeSetRevision> myParents = new ArrayList<ChangeSetRevision>();
425
e33c3e4918f5 Add list files support
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
36 private List<FileStatus> myModifiedFiles = new ArrayList<FileStatus>();
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
37
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
38 public ChangeSet(final int revNumber, @NotNull final String id) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
39 super(revNumber, id);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
40 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
41
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
42 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
43 * Constructor for version in the form revnum:changeset_id or just changeset_id (in this case rev number is set to -1)
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
44 * @param fullVersion full changeset version as reported by hg log command
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
45 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
46 public ChangeSet(@NotNull final String fullVersion) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
47 super(fullVersion);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
48 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
49
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
50 public void setUser(@NotNull final String user) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
51 myUser = user;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
52 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
53
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
54 public void setTimestamp(@NotNull final Date timestamp) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
55 myTimestamp = timestamp;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
56 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
57
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
58 public void setDescription(final String description) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
59 myDescription = description;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
60 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
61
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
62 public void addParent(@NotNull ChangeSetRevision rev) {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
63 myParents.add(rev);
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
64 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
65
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
66 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
67 * Returns user who made changeset
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
68 * @return user who made changeset
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
69 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
70 @NotNull
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
71 public String getUser() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
72 return myUser;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
73 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
74
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
75 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
76 * Returns changeset timestamp
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
77 * @return changeset timestamp
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
78 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
79 @NotNull
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
80 public Date getTimestamp() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
81 return myTimestamp;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
82 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
83
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
84 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
85 * Returns changeset summary specified by user
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
86 * @return changeset summary
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
87 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
88 public String getDescription() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
89 return myDescription;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
90 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
91
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
92 /**
276
8c10f5cec37d TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 271
diff changeset
93 * Returns parrents of this change set
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
94 * @return see above
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
95 */
276
8c10f5cec37d TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 271
diff changeset
96 @NotNull
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
97 public List<ChangeSetRevision> getParents() {
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
98 return myParents;
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
99 }
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
100
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
101 /**
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
102 * Check if changeset is initial changeset (has no parents)
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
103 * @return true if changeset is initial changeset
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
104 */
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
105 public boolean isInitial() {
299
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
106 return getParents().isEmpty();
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
107 }
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
108
425
e33c3e4918f5 Add list files support
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
109 public void setModifiedFiles(@NotNull final List<FileStatus> files) {
299
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
110 myModifiedFiles = files;
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
111 }
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
112
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
113 @NotNull
425
e33c3e4918f5 Add list files support
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 322
diff changeset
114 public List<FileStatus> getModifiedFiles() {
299
e9e7d9fcf57d Use customized xml output from the 'hg log' command instead of running 'hg status' for every commit
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 276
diff changeset
115 return myModifiedFiles;
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
116 }
654
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
117
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
118 @NotNull
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
119 public String getBranch() {
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
120 return myBranch;
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
121 }
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
122
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
123 public void setBranch(@Nullable String branch) {
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
124 if (branch == null || branch.trim().isEmpty() || DEFAULT_BRANCH_NAME.equals(branch)) branch = DEFAULT_BRANCH_NAME;
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
125 myBranch = branch;
3daa8e36f8f1 include branch name into log commands
eugene.petrenko@gmail.com
parents: 425
diff changeset
126 }
266
643fa1236f4e Fix file encoding
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 160
diff changeset
127 }