public class TreeRevFilter extends RevFilter
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
.
Modifier and Type | Field and Description |
---|---|
private static int |
PARSED |
private TreeWalk |
pathFilter |
private int |
rewriteFlag |
private static int |
UNINTERESTING |
ALL, MERGE_BASE, NO_MERGES, NONE, ONLY_MERGES
Constructor and Description |
---|
TreeRevFilter(RevWalk walker,
TreeFilter t)
Create a
RevFilter from a
TreeFilter . |
TreeRevFilter(RevWalk walker,
TreeFilter t,
int rewriteFlag)
Create a filter for the first phase of a parent-rewriting limited revision
walk.
|
Modifier and Type | Method and Description |
---|---|
RevFilter |
clone() |
boolean |
include(RevWalk walker,
RevCommit c)
Determine if the supplied commit should be included in results.
|
private static boolean |
isRename(DiffEntry ent) |
boolean |
requiresCommitBody()
Whether the filter needs the commit body to be parsed.
|
private void |
updateFollowFilter(ObjectId[] trees,
DiffConfig cfg) |
private static final int PARSED
private static final int UNINTERESTING
private final int rewriteFlag
private final TreeWalk pathFilter
public TreeRevFilter(RevWalk walker, TreeFilter t)
RevFilter
from a
TreeFilter
.walker
- walker used for reading trees.t
- filter to compare against any changed paths in each commit. If
a FollowFilter
, will be
replaced with a new filter following new paths after a rename.TreeRevFilter(RevWalk walker, TreeFilter t, int rewriteFlag)
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 by
RewriteGenerator
to remove those colored commits from the DAG.
walker
- walker used for reading trees.t
- filter to compare against any changed paths in each commit. If a
FollowFilter
, 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.RewriteGenerator
public RevFilter 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.
public boolean include(RevWalk walker, RevCommit c) throws StopWalkException, MissingObjectException, IncorrectObjectTypeException, java.io.IOException
include
in class RevFilter
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 from RevFilter.requiresCommitBody()
.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.java.io.IOException
- a loose object or pack file could not be read to obtain data
necessary for the filter to make its decision.public boolean requiresCommitBody()
requiresCommitBody
in class RevFilter
private void updateFollowFilter(ObjectId[] trees, DiffConfig cfg) throws MissingObjectException, IncorrectObjectTypeException, CorruptObjectException, java.io.IOException
MissingObjectException
IncorrectObjectTypeException
CorruptObjectException
java.io.IOException
private static boolean isRename(DiffEntry ent)