Package org.eclipse.jgit.revwalk
Class TreeRevFilter
java.lang.Object
org.eclipse.jgit.revwalk.filter.RevFilter
org.eclipse.jgit.revwalk.TreeRevFilter
Filter applying a
TreeFilter
against
changed paths in each commit.
Each commit is differenced concurrently against all of its parents to look
for tree entries that are interesting to the
TreeFilter
.
- Since:
- 3.5
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private final TreeWalk
private final int
private static final int
Fields inherited from class org.eclipse.jgit.revwalk.filter.RevFilter
ALL, MERGE_BASE, NO_MERGES, NONE, ONLY_MERGES
-
Constructor Summary
ConstructorsConstructorDescriptionTreeRevFilter
(RevWalk walker, TreeFilter t) Create aRevFilter
from aTreeFilter
.TreeRevFilter
(RevWalk walker, TreeFilter t, int rewriteFlag) Create a filter for the first phase of a parent-rewriting limited revision walk. -
Method Summary
Modifier and TypeMethodDescriptionclone()
boolean
Determine if the supplied commit should be included in results.private static boolean
boolean
Whether the filter needs the commit body to be parsed.private void
updateFollowFilter
(ObjectId[] trees, DiffConfig cfg)
-
Field Details
-
PARSED
private static final int PARSED- See Also:
-
UNINTERESTING
private static final int UNINTERESTING- See Also:
-
rewriteFlag
private final int rewriteFlag -
pathFilter
-
-
Constructor Details
-
TreeRevFilter
Create aRevFilter
from aTreeFilter
.- Parameters:
walker
- walker used for reading trees.t
- filter to compare against any changed paths in each commit. If aFollowFilter
, will be replaced with a new filter following new paths after a rename.- Since:
- 3.5
-
TreeRevFilter
TreeRevFilter(RevWalk walker, TreeFilter t, int rewriteFlag) Create a filter for the first phase of a parent-rewriting limited revision walk.This filter is ANDed to evaluate before all other filters and ties the configured
TreeFilter
into the revision walking process.If no interesting tree entries are found the commit is colored with
rewriteFlag
, allowing a later pass implemented byRewriteGenerator
to remove those colored commits from the DAG.- Parameters:
walker
- walker used for reading trees.t
- filter to compare against any changed paths in each commit. If aFollowFilter
, will be replaced with a new filter following new paths after a rename.rewriteFlag
- flag to color commits to be removed from the simplified DAT.- See Also:
-
-
Method Details
-
clone
Clone this revision filter, including its parameters.
This is a deep clone. If this filter embeds objects or other filters it must also clone those, to ensure the instances do not share mutable data.
-
include
public boolean include(RevWalk walker, RevCommit c) throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, IOException Determine if the supplied commit should be included in results.- Specified by:
include
in classRevFilter
- Parameters:
walker
- the active walker this filter is being invoked from within.c
- the commit currently being tested. The commit has been parsed and its body is available for inspection only if the filter returns true fromRevFilter.requiresCommitBody()
.- Returns:
- true to include this commit in the results; false to have this commit be omitted entirely from the results.
- Throws:
StopWalkException
- the filter knows for certain that no additional commits can ever match, and the current commit doesn't match either. The walk is halted and no more results are provided.MissingObjectException
- an object the filter needs to consult to determine its answer does not exist in the Git repository the walker is operating on. Filtering this commit is impossible without the object.IncorrectObjectTypeException
- an object the filter needed to consult was not of the expected object type. This usually indicates a corrupt repository, as an object link is referencing the wrong type.IOException
- a loose object or pack file could not be read to obtain data necessary for the filter to make its decision.
-
requiresCommitBody
public boolean requiresCommitBody()Whether the filter needs the commit body to be parsed.- Overrides:
requiresCommitBody
in classRevFilter
- Returns:
- true if the filter needs the commit body to be parsed.
-
updateFollowFilter
private void updateFollowFilter(ObjectId[] trees, DiffConfig cfg) throws MissingObjectException, IncorrectObjectTypeException, CorruptObjectException, IOException -
isRename
-