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 Summary
Constructors - 
Method Summary
Modifier 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
- 
DiffUtil
public DiffUtil() 
 - 
 - 
Method Details
- 
mergeRewrittenModifiedFiles
public 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. - 
getTreeId
public 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- aRevWalkof 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
 - 
getRevCommit
public 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- aRevWalkof 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.
 - 
areRelated
public 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
 - 
getFormattedDiff
public 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 frombaseCommit- to compare withchildCommit- to comparepath- to narrow the diff toout- to append the diff to- Throws:
 IOException- if the diff couldn't be written
 - 
getFormattedDiff
public 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
 
 -