Package org.eclipse.jgit.util
Class ChangeIdUtil
java.lang.Object
org.eclipse.jgit.util.ChangeIdUtil
Utilities for creating and working with Change-Id's, like the one used by
Gerrit Code Review.
A Change-Id is a SHA-1 computed from the content of a commit, in a similar fashion to how the commit id is computed. Unlike the commit id a Change-Id is retained in the commit and subsequent revised commits in the footer of the commit text.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static Stringstatic ObjectIdcomputeChangeId(ObjectId treeId, ObjectId firstParentId, PersonIdent author, PersonIdent committer, String message) Compute a Change-Id.static intindexOfChangeId(String message, String delimiter) Return the index in the Stringmessagewhere the Change-Id entry in the footer begins.static intindexOfFirstFooterLine(String[] lines) Find the index of the first line of the footer paragraph in an array of the lines, or lines.length if no footer is availablestatic StringFind the right place to insert a Change-Id and return it.static StringFind the right place to insert a Change-Id and return it.private static booleanisEmptyLine(String line) private static String
-
Field Details
-
CHANGE_ID
- See Also:
-
issuePattern
-
changeIdPattern
-
trailingWhitespace
-
-
Constructor Details
-
ChangeIdUtil
public ChangeIdUtil()
-
-
Method Details
-
clean
-
computeChangeId
public static ObjectId computeChangeId(ObjectId treeId, ObjectId firstParentId, PersonIdent author, PersonIdent committer, String message) Compute a Change-Id.- Parameters:
treeId- The id of the tree that would be committedfirstParentId- parent id of previous commit or nullauthor- thePersonIdentfor the presumed author and timecommitter- thePersonIdentfor the presumed committer and timemessage- The commit message- Returns:
- the change id SHA1 string (without the 'I') or null if the message is not complete enough
-
insertId
Find the right place to insert a Change-Id and return it.The Change-Id is inserted before the first footer line but after a Bug line.
- Parameters:
message- a message.changeId- a Change-Id.- Returns:
- a commit message with an inserted Change-Id line
-
insertId
Find the right place to insert a Change-Id and return it.If no Change-Id is found the Change-Id is inserted before the first footer line but after a Bug line. If Change-Id is found and replaceExisting is set to false, the message is unchanged. If Change-Id is found and replaceExisting is set to true, the Change-Id is replaced with
changeId.- Parameters:
message- a message.changeId- a Change-Id.replaceExisting- a boolean.- Returns:
- a commit message with an inserted Change-Id line
-
indexOfChangeId
Return the index in the Stringmessagewhere the Change-Id entry in the footer begins. If there are more than one entries matching the pattern, return the index of the last one in the last section. Because of Bug: 400818 we release the constraint here that a footer must contain only lines matchingfooterPattern.- Parameters:
message- a message.delimiter- the line delimiter, like "\n" or "\r\n", needed to find the footer- Returns:
- the index of the ChangeId footer in the message, or -1 if no ChangeId footer available
-
isEmptyLine
-
trimRight
-