Class DiffUtil

    • Constructor Summary

      Constructors 
      Constructor Description
      DiffUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      static org.eclipse.jgit.revwalk.RevCommit getRevCommit​(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.ObjectId getTreeId​(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 the modifiedFiles input list while merging rewritten entries.
      static int stringSize​(String str)  
    • Constructor Detail

      • DiffUtil

        public DiffUtil()
    • Method Detail

      • mergeRewrittenModifiedFiles

        public static com.google.common.collect.ImmutableList<ModifiedFile> mergeRewrittenModifiedFiles​(List<ModifiedFile> modifiedFiles)
        Return the modifiedFiles input 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 - a RevWalk of 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 - a RevWalk of 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

        public static int stringSize​(String str)