new()
Create a new in-memory index. This is currently of little use.
owner()
Retrieve the Git::Raw::Repository owning the index.
add($entry)
Add $entry to the index. $entry should either be the path of a file or alternatively a
Git::Raw::Index::Entry.
add_frombuffer($path,$buffer,[$mode])
Add or update an entry from an in-memory file. The entry will be placed at $path with the contents of
$buffer. $buffer may either be string or a reference to a string. $mode is the file mode; it defaults to
0100644. Returns a Git::Raw::Index::Entry object.
add_all(\%opts)
Add or update all index entries to match the working directory. Valid fields for the %opts hash are:
• "paths"
List of path patterns to add.
• "flags"
Valid fields for the %flags member:
• "force"
Forced addition of files (even if they are ignored).
• "disable_pathspec_match"
Disable pathspec pattern matching against entries in $paths.
• "check_pathspec"
Enable pathspec pattern matching against entries in $paths (default).
• "notification"
The callback to be called for each added or updated item. Receives the $path and matching $pathspec.
This callback should return 0 if the file should be added to the index, ">0" if it should be skipped
or "<0" to abort.
find($path)
Find the first Git::Raw::Index::Entry which points to a given $path. If an entry cannot be found, this
function will return "undef".
remove($path)
Remove $path from the index.
remove_all(\%opts)
Remove all matching index entries. See "Git::Raw::Index->update_all()" for valid %opts values.
path()
Retrieve the full path to the index file on disk.
checksum()
Retrieve the SHA-1 checksum over the index file, except for the last 20 bytes which is the checksum
content itself. If the index does not exist on-disk an empty OID will be returned.
clear()
Clear the index.
read([$force])
Update the index, reading it from disk.
write()
Write the index to disk.
read_tree($tree)
Replace the index content with $tree.
write_tree([$repo])
Create a new tree from the index and write it to disk. $repo optionally indicates which
Git::Raw::Repository the tree should be written to. Returns a Git::Raw::Tree object.
checkout([\%checkout_opts])
Update files in the working tree to match the contents of the index. See
"Git::Raw::Repository->checkout()" for valid %checkout_opts values.
entry_count()
Retrieve the number of entries in the index.
entries()
Retrieve index entries. Returns a list of Git::Raw::Index::Entry objects.
add_conflict($ancestor,$theirs,$ours)
Add a new conflict entry. $ancestor, $theirs and $ours should be Git::Raw::Index::Entry objects.
get_conflict($path)
Get the conflict entry for $path. If $path has no conflict entry, this function will return "undef".
remove_conflict($path)
Remove $path from the index.
has_conflicts()
Determine if the index contains entries representing file conflicts.
conflict_cleanup()
Remove all conflicts in the index (entries with a stage greater than 0).
conflicts()
Retrieve index entries that represent a conflict. Returns a list of Git::Raw::Index::Conflict objects.
merge($ancestor,$theirs,$ours,[\%merge_opts])
Merge two files as they exist in the index. $ancestor, $theirs and $ours should be Git::Raw::Index::Entry
objects. Returns a Git::Raw::Merge::File::Result object. Valid fields for the %merge_opts hash are:
• "our_label"
The name of the "our" side of conflicts.
• "their_label"
The name of the "their" side of conflicts.
• "ancestor_label"
The name of the common ancestor side of conflicts.
• "favor"
Specify content automerging behaviour. Valid values are "ours", "theirs", and "union".
• "marker_size"
The size of conflict markers.
• "flags"
Merge file flags. Valid values include:
• "merge"
Create standard conflicted merge file.
• "diff3"
Create diff3-style files.
• "simplify_alnum"
Condense non-alphanumeric regions for simplified diff file.
• "ignore_whitespace"
Ignore all whitespace.
• "ignore_whitespace_change"
Ignore changes in amount of whitespace.
• "ignore_whitespace_eol"
Ignore whitespace at end of line.
• "patience"
Use the "patience diff" algorithm.
• "minimal"
Take extra time to find minimal diff.
update_all(\%opts)
Update all index entries to match the working directory. Valid fields for the %opts hash are:
• "paths"
List of path patterns to add.
• "notification"
The callback to be called for each updated item. Receives the $path and matching $pathspec. This
callback should return 0 if the file should be added to the index, ">0" if it should be skipped, or
"<0" to abort.
capabilities()
Retrieve the index's capabilities. Returns a hash with members "ignore_case", "no_filemode" and
"no_symlinks", each indicating if the Git::Raw::Index supports the capability.
version([$version])
Retrieve or set the index version.