public class RenameDetector extends Object
Constructor and Description |
---|
RenameDetector(ObjectReader reader,
DiffConfig cfg)
Create a new rename detector with a specified reader and diff config.
|
RenameDetector(Repository repo)
Create a new rename detector for the given repository
|
Modifier and Type | Method and Description |
---|---|
void |
add(DiffEntry entry)
Add an entry to be considered for rename detection.
|
void |
addAll(Collection<DiffEntry> entriesToAdd)
Add entries to be considered for rename detection.
|
List<DiffEntry> |
compute()
Detect renames in the current file set.
|
List<DiffEntry> |
compute(ContentSource.Pair reader,
ProgressMonitor pm)
Detect renames in the current file set.
|
List<DiffEntry> |
compute(ObjectReader reader,
ProgressMonitor pm)
Detect renames in the current file set.
|
List<DiffEntry> |
compute(ProgressMonitor pm)
Detect renames in the current file set.
|
int |
getBreakScore() |
int |
getRenameLimit() |
int |
getRenameScore() |
boolean |
isOverRenameLimit()
Check if the detector is over the rename limit.
|
void |
reset()
Reset this rename detector for another rename detection pass.
|
void |
setBreakScore(int breakScore) |
void |
setRenameLimit(int limit)
Set the limit on the number of files to perform inexact rename detection.
|
void |
setRenameScore(int score)
Set the minimum score required to pair an add/delete as a rename.
|
public RenameDetector(Repository repo)
repo
- the repository to use for rename detectionpublic RenameDetector(ObjectReader reader, DiffConfig cfg)
reader
- reader to obtain objects from the repository with.cfg
- diff config specifying rename detection options.public int getRenameScore()
public void setRenameScore(int score)
When comparing two files together their score must be greater than or equal to the rename score for them to be considered a rename match. The score is computed based on content similarity, so a score of 60 implies that approximately 60% of the bytes in the files are identical.
score
- new rename score, must be within [0, 100].IllegalArgumentException
- the score was not within [0, 100].public int getBreakScore()
public void setBreakScore(int breakScore)
breakScore
- the similarity score required to keep modified file pairs
together. Any modify pairs that score below this will be
broken apart into separate add/deletes. Values less than or
equal to zero indicate that no modifies will be broken apart.
Values over 100 cause all modify pairs to be broken.public int getRenameLimit()
public void setRenameLimit(int limit)
The rename detector has to build a square matrix of the rename limit on each side, then perform that many file compares to determine similarity. If 1000 files are added, and 1000 files are deleted, a 1000*1000 matrix must be allocated, and 1,000,000 file compares may need to be performed.
limit
- new file limit.public boolean isOverRenameLimit()
This method can be invoked either before or after getEntries
has
been used to perform rename detection.
public void addAll(Collection<DiffEntry> entriesToAdd)
entriesToAdd
- one or more entries to add.IllegalStateException
- if getEntries
was already invoked.public void add(DiffEntry entry)
entry
- to add.IllegalStateException
- if getEntries
was already invoked.public List<DiffEntry> compute() throws IOException
This convenience function runs without a progress monitor.
DiffEntry
s representing all files
that have been changed.IOException
- file contents cannot be read from the repository.public List<DiffEntry> compute(ProgressMonitor pm) throws IOException
pm
- report progress during the detection phases.DiffEntry
s representing all files
that have been changed.IOException
- file contents cannot be read from the repository.public List<DiffEntry> compute(ObjectReader reader, ProgressMonitor pm) throws IOException
reader
- reader to obtain objects from the repository with.pm
- report progress during the detection phases.DiffEntry
s representing all files
that have been changed.IOException
- file contents cannot be read from the repository.public List<DiffEntry> compute(ContentSource.Pair reader, ProgressMonitor pm) throws IOException
reader
- reader to obtain objects from the repository with.pm
- report progress during the detection phases.DiffEntry
s representing all files
that have been changed.IOException
- file contents cannot be read from the repository.public void reset()
Copyright © 2015 Eclipse JGit Project. All rights reserved.