|Git::Raw::Index(3pm)||User Contributed Perl Documentation||Git::Raw::Index(3pm)|
NAME¶Git::Raw::Index - Git index class
DESCRIPTION¶A Git::Raw::Index represents an index in a Git repository.
WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).
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:
List of path patterns to add.
Valid fields for the %flags member:
Forced addition of files (even if they are ignored).
Disable pathspec pattern matching against entries in $paths.
Enable pathspec pattern matching against entries in $paths (default).
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 point to 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. In 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 contente 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:
The name of the "our" side of conflicts.
The name of the "their" side of conflicts.
The name of the common ancestor side of conflicts.
Specify content automerging behaviour. Valid values are "ours", "theirs", and "union".
The size of conflict markers.
Merge file flags. Valid values include:
Create standard conflicted merge file.
Create diff3-style files.
Condense non-alphanumeric regions for simplified diff file.
Ignore all whitespace.
Ignore changes in amount of whitespace.
Ignore whitespace at end of line.
Use the "patience diff" algorithm.
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:
List of path patterns to add.
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.
AUTHOR¶Alessandro Ghedini <firstname.lastname@example.org>
Jacques Germishuys <email@example.com>
LICENSE AND COPYRIGHT¶Copyright 2012 Alessandro Ghedini.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.