org.eclipse.jgit.revwalk

## Class RevWalkUtils

- java.lang.Object
- - org.eclipse.jgit.revwalk.RevWalkUtils

    public final class RevWalkUtils
    extends Object

Utility methods for `RevWalk`.

### Method Summary

Methods
`static int` `count(RevWalk walk, RevCommit start, RevCommit end)` Count the number of commits that are reachable from `start` until a commit that is reachable from `end` is encountered.
`static List<RevCommit>` `find(RevWalk walk, RevCommit start, RevCommit end)` Find commits that are reachable from `start` until a commit that is reachable from `end` is encountered.
`static List<Ref>` `findBranchesReachableFrom(RevCommit commit, RevWalk revWalk, Collection<Ref> refs)` Find the list of branches a given commit is reachable from when following parent.s

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### count

    public static int count(RevWalk walk,
            RevCommit start,
            RevCommit end)
                     throws MissingObjectException,
                            IncorrectObjectTypeException,
                            IOException

Count the number of commits that are reachable from `start` until a commit that is reachable from `end` is encountered. In other words, count the number of commits that are in `start`, but not in `end`.

Note that this method calls `RevWalk.reset()` at the beginning. Also note that the existing rev filter on the walk is left as-is, so be sure to set the right rev filter before calling this method.

Parameters:
  `walk` - the rev walk to use
  `start` - the commit to start counting from
  `end` - the commit where counting should end, or null if counting should be done until there are no more commits
Returns:
  the number of commits
Throws:
  `MissingObjectException`
  `IncorrectObjectTypeException`
  `IOException`

#### find

    public static List<RevCommit> find(RevWalk walk,
                       RevCommit start,
                       RevCommit end)
                                throws MissingObjectException,
                                       IncorrectObjectTypeException,
                                       IOException

Find commits that are reachable from `start` until a commit that is reachable from `end` is encountered. In other words, Find of commits that are in `start`, but not in `end`.

Note that this method calls `RevWalk.reset()` at the beginning. Also note that the existing rev filter on the walk is left as-is, so be sure to set the right rev filter before calling this method.

Parameters:
  `walk` - the rev walk to use
  `start` - the commit to start counting from
  `end` - the commit where counting should end, or null if counting should be done until there are no more commits
Returns:
  the commits found
Throws:
  `MissingObjectException`
  `IncorrectObjectTypeException`
  `IOException`

#### findBranchesReachableFrom

    public static List<Ref> findBranchesReachableFrom(RevCommit commit,
                                      RevWalk revWalk,
                                      Collection<Ref> refs)
                                               throws MissingObjectException,
                                                      IncorrectObjectTypeException,
                                                      IOException

Find the list of branches a given commit is reachable from when following parent.s

Note that this method calls `RevWalk.reset()` at the beginning.

In order to improve performance this method assumes clock skew among committers is never larger than 24 hours.

Parameters:
  `commit` - the commit we are looking at
  `revWalk` - The RevWalk to be used.
  `refs` - the set of branches we want to see reachability from
Returns:
  the list of branches a given commit is reachable from
Throws:
  `MissingObjectException`
  `IncorrectObjectTypeException`
  `IOException`