Class IndexDiff
- added files
- changed files
- removed files
- missing files
- modified files
- conflicting files
- untracked files
- files with assume-unchanged flag
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
static enum
Represents the state of the index for a certain path regarding the stages - which stages exist for a path and which not (base, ours, theirs).static interface
A factory to producing WorkingTreeIterators -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Map
<String, IndexDiff.StageState> private DirCache
private TreeFilter
private static final int
private IndexDiffFilter
private final WorkingTreeIterator
private final Repository
private final AnyObjectId
private static final int
private static final int
-
Constructor Summary
ConstructorsConstructorDescriptionIndexDiff
(Repository repository, String revstr, WorkingTreeIterator workingTreeIterator) Construct an IndexDiffIndexDiff
(Repository repository, ObjectId objectId, WorkingTreeIterator workingTreeIterator) Construct an Indexdiff -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addConflict
(String path, int stage) boolean
diff()
Run the diff operation.boolean
diff
(ProgressMonitor monitor, int estWorkTreeSize, int estIndexSize, String title) Run the diff operation.boolean
diff
(ProgressMonitor monitor, int estWorkTreeSize, int estIndexSize, String title, RepositoryBuilderFactory factory) Run the diff operation.boolean
diff
(RepositoryBuilderFactory factory) Run the diff operation.getAdded()
Get list of files added to the index, not in the treeGet list of files with the flag assume-unchangedGet list of files changed from tree to indexGet list of files that are in conflict, corresponds to the keys ofgetConflictingStageStates()
Get the map from each path ofgetConflicting()
to its correspondingIndexDiff.StageState
The method returns the list of ignored files and folders.getIndexMode
(String path) Get the file mode of the given path in the indexGet list of files in index, but not filesystemGet list of files modified on disk relative to the indexGet the list of paths that IndexDiff has detected to differ and have the given file modeGet list of files removed from index, but in treeGet list of files that are not ignored, and not in the index.Get list of folders containing only untracked files/foldersprivate boolean
private boolean
private void
recordFileMode
(String path, FileMode mode) void
setFilter
(TreeFilter filter) Sets a filter.void
Defines how modifications in submodules are treatedvoid
Allows higher layers to set the factory for WorkingTreeIterators.
-
Field Details
-
TREE
private static final int TREE- See Also:
-
INDEX
private static final int INDEX- See Also:
-
WORKDIR
private static final int WORKDIR- See Also:
-
repository
-
tree
-
filter
-
initialWorkingTreeIterator
-
added
-
changed
-
removed
-
missing
-
missingSubmodules
-
modified
-
untracked
-
conflicts
-
ignored
-
assumeUnchanged
-
dirCache
-
indexDiffFilter
-
submoduleIndexDiffs
-
ignoreSubmoduleMode
-
fileModes
-
wTreeIt
-
-
Constructor Details
-
IndexDiff
public IndexDiff(Repository repository, String revstr, WorkingTreeIterator workingTreeIterator) throws IOException Construct an IndexDiff- Parameters:
repository
- aRepository
object.revstr
- symbolic name e.g. HEAD An EmptyTreeIterator is used ifrevstr
cannot be resolved.workingTreeIterator
- iterator for working directory- Throws:
IOException
-
IndexDiff
public IndexDiff(Repository repository, ObjectId objectId, WorkingTreeIterator workingTreeIterator) throws IOException Construct an Indexdiff- Parameters:
repository
- aRepository
object.objectId
- tree id. If null, an EmptyTreeIterator is used.workingTreeIterator
- iterator for working directory- Throws:
IOException
-
-
Method Details
-
setIgnoreSubmoduleMode
Defines how modifications in submodules are treated- Parameters:
mode
- defines how modifications in submodules are treated- Since:
- 3.6
-
setWorkingTreeItFactory
Allows higher layers to set the factory for WorkingTreeIterators.- Parameters:
wTreeIt
-- Since:
- 3.6
-
setFilter
Sets a filter. Can be used e.g. for restricting the tree walk to a set of files.- Parameters:
filter
- aTreeFilter
object.
-
diff
Run the diff operation. Until this is called, all lists will be empty. Usediff(ProgressMonitor, int, int, String)
if a progress monitor is required.- Returns:
- if anything is different between index, tree, and workdir
- Throws:
IOException
-
diff
Run the diff operation. Until this is called, all lists will be empty. Usediff(ProgressMonitor, int, int, String, RepositoryBuilderFactory)
if a progress monitor is required.The operation may create repositories for submodules using builders provided by the given
factory
, if any, and will also close these submodule repositories again.- Parameters:
factory
- theRepositoryBuilderFactory
to use to create builders to create submodule repositories, if needed; ifnull
, submodule repositories will be built using a plainRepositoryBuilder
.- Returns:
- if anything is different between index, tree, and workdir
- Throws:
IOException
- Since:
- 5.6
-
diff
public boolean diff(ProgressMonitor monitor, int estWorkTreeSize, int estIndexSize, String title) throws IOException Run the diff operation. Until this is called, all lists will be empty.The operation may be aborted by the progress monitor. In that event it will report what was found before the cancel operation was detected. Callers should ignore the result if monitor.isCancelled() is true. If a progress monitor is not needed, callers should use
diff()
instead. Progress reporting is crude and approximate and only intended for informing the user.- Parameters:
monitor
- for reporting progress, may be nullestWorkTreeSize
- number or estimated files in the working treeestIndexSize
- number of estimated entries in the cachetitle
- aString
object.- Returns:
- if anything is different between index, tree, and workdir
- Throws:
IOException
-
diff
public boolean diff(ProgressMonitor monitor, int estWorkTreeSize, int estIndexSize, String title, RepositoryBuilderFactory factory) throws IOException Run the diff operation. Until this is called, all lists will be empty.The operation may be aborted by the progress monitor. In that event it will report what was found before the cancel operation was detected. Callers should ignore the result if monitor.isCancelled() is true. If a progress monitor is not needed, callers should use
diff()
instead. Progress reporting is crude and approximate and only intended for informing the user.The operation may create repositories for submodules using builders provided by the given
factory
, if any, and will also close these submodule repositories again.- Parameters:
monitor
- for reporting progress, may be nullestWorkTreeSize
- number or estimated files in the working treeestIndexSize
- number of estimated entries in the cachetitle
- aString
object.factory
- theRepositoryBuilderFactory
to use to create builders to create submodule repositories, if needed; ifnull
, submodule repositories will be built using a plainRepositoryBuilder
.- Returns:
- if anything is different between index, tree, and workdir
- Throws:
IOException
- Since:
- 5.6
-
hasFiles
-
recordFileMode
-
isEntryGitLink
-
addConflict
-
getAdded
Get list of files added to the index, not in the tree- Returns:
- list of files added to the index, not in the tree
-
getChanged
Get list of files changed from tree to index- Returns:
- list of files changed from tree to index
-
getRemoved
Get list of files removed from index, but in tree- Returns:
- list of files removed from index, but in tree
-
getMissing
Get list of files in index, but not filesystem- Returns:
- list of files in index, but not filesystem
-
getModified
Get list of files modified on disk relative to the index- Returns:
- list of files modified on disk relative to the index
-
getUntracked
Get list of files that are not ignored, and not in the index.- Returns:
- list of files that are not ignored, and not in the index.
-
getConflicting
Get list of files that are in conflict, corresponds to the keys ofgetConflictingStageStates()
- Returns:
- list of files that are in conflict, corresponds to the keys of
getConflictingStageStates()
-
getConflictingStageStates
Get the map from each path ofgetConflicting()
to its correspondingIndexDiff.StageState
- Returns:
- the map from each path of
getConflicting()
to its correspondingIndexDiff.StageState
- Since:
- 3.0
-
getIgnoredNotInIndex
The method returns the list of ignored files and folders. Only the root folder of an ignored folder hierarchy is reported. If a/b/c is listed in the .gitignore then you should not expect a/b/c/d/e/f to be reported here. Only a/b/c will be reported. Furthermore only ignored files / folders are returned that are NOT in the index.- Returns:
- list of files / folders that are ignored
-
getAssumeUnchanged
Get list of files with the flag assume-unchanged- Returns:
- list of files with the flag assume-unchanged
-
getUntrackedFolders
Get list of folders containing only untracked files/folders- Returns:
- list of folders containing only untracked files/folders
-
getIndexMode
Get the file mode of the given path in the index- Parameters:
path
- aString
object.- Returns:
- file mode
-
getPathsWithIndexMode
Get the list of paths that IndexDiff has detected to differ and have the given file mode- Parameters:
mode
- aFileMode
object.- Returns:
- the list of paths that IndexDiff has detected to differ and have the given file mode
- Since:
- 3.6
-