Selects interesting revisions during walking. This is an abstract interface. Applications may implement a subclass, or use one of the predefined implementations already available within this package. Filters may be chained together using AndRevFilter and OrRevFilter to create complex boolean expressions. Applications should install the filter on a RevWalk by RevWalk.setRevFilter(RevFilter) prior to starting traversal. Unless specifically noted otherwise a RevFilter implementation is not thread safe and may not be shared by different RevWalk instances at the same time. This restriction allows RevFilter implementations to cache state within their instances during include(RevWalk, RevCommit) if it is beneficial to their implementation. Deep clones created by Clone() may be used to construct a thread-safe copy of an existing filter. Message filters: