Package com.google.gerrit.server.patch
Class DiffUtil
java.lang.Object
com.google.gerrit.server.patch.DiffUtil
A utility class used by the diff cache interfaces 
GitModifiedFilesCache and ModifiedFilesCache.- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic booleanareRelated(org.eclipse.jgit.revwalk.RevCommit commitA, org.eclipse.jgit.revwalk.RevCommit commitB) Returns true if the commitA and commitB parameters are parent/child, if they have a common parent, or if any of them is a root or merge commit.static voidgetFormattedDiff(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.lib.ObjectReader reader, org.eclipse.jgit.revwalk.RevTree baseTree, org.eclipse.jgit.revwalk.RevTree childTree, String path, OutputStream out) static voidgetFormattedDiff(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.revwalk.RevCommit baseCommit, org.eclipse.jgit.revwalk.RevCommit childCommit, String path, OutputStream out) Get formatted diff between the given commits, either for a single path if specified, or for the full trees.getPatchHeader(String patch) static org.eclipse.jgit.revwalk.RevCommitgetRevCommit(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectId commitId) Returns the RevCommit object given the 20 bytes commitId SHA-1 hash.static org.eclipse.jgit.lib.ObjectIdgetTreeId(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectId commitId) Returns the Git tree object ID pointed to by the commitId parameter.static com.google.common.collect.ImmutableList<ModifiedFile>mergeRewrittenModifiedFiles(List<ModifiedFile> modifiedFiles) Return themodifiedFilesinput list while merging rewritten entries.static Stringstatic Stringstatic StringremovePatchHeader(String patch) static intstringSize(String str) 
- 
Constructor Details- 
DiffUtilpublic DiffUtil()
 
- 
- 
Method Details- 
mergeRewrittenModifiedFilespublic static com.google.common.collect.ImmutableList<ModifiedFile> mergeRewrittenModifiedFiles(List<ModifiedFile> modifiedFiles) Return themodifiedFilesinput list while merging rewritten entries.Background: In some cases, JGit returns two diff entries (ADDED/DELETED, RENAMED/DELETED, etc...) for the same file path. This happens e.g. when a file's mode is changed between patchsets, for example converting a symlink file to a regular file. We identify this case and return a single modified file with changeType = Patch.ChangeType.REWRITE.
- 
getTreeIdpublic static org.eclipse.jgit.lib.ObjectId getTreeId(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectId commitId) throws IOException Returns the Git tree object ID pointed to by the commitId parameter.- Parameters:
- rw- a- RevWalkof an opened repository that is used to walk the commit graph.
- commitId- 20 bytes commitId SHA-1 hash.
- Returns:
- Git tree object ID pointed to by the commitId.
- Throws:
- IOException
 
- 
getRevCommitpublic static org.eclipse.jgit.revwalk.RevCommit getRevCommit(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectId commitId) throws IOException Returns the RevCommit object given the 20 bytes commitId SHA-1 hash.- Parameters:
- rw- a- RevWalkof an opened repository that is used to walk the commit graph.
- commitId- 20 bytes commitId SHA-1 hash
- Returns:
- The RevCommit representing the commit in Git
- Throws:
- IOException- a pack file or loose object could not be read while parsing the commits.
 
- 
areRelatedpublic static boolean areRelated(org.eclipse.jgit.revwalk.RevCommit commitA, org.eclipse.jgit.revwalk.RevCommit commitB) Returns true if the commitA and commitB parameters are parent/child, if they have a common parent, or if any of them is a root or merge commit.
- 
stringSize
- 
getFormattedDiffpublic static void getFormattedDiff(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.revwalk.RevCommit baseCommit, org.eclipse.jgit.revwalk.RevCommit childCommit, String path, OutputStream out) throws IOException Get formatted diff between the given commits, either for a single path if specified, or for the full trees.- Parameters:
- repo- to get the diff from
- baseCommit- to compare with
- childCommit- to compare
- path- to narrow the diff to
- out- to append the diff to
- Throws:
- IOException- if the diff couldn't be written
 
- 
getFormattedDiffpublic static void getFormattedDiff(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.lib.ObjectReader reader, org.eclipse.jgit.revwalk.RevTree baseTree, org.eclipse.jgit.revwalk.RevTree childTree, String path, OutputStream out) throws IOException - Throws:
- IOException
 
- 
normalizePatchForComparison
- 
removePatchHeader
- 
getPatchHeader
- 
normalizePatchForComparison- Throws:
- IOException
 
 
-