NAME
Git::Raw::Index - Git index class
VERSION
version 0.90
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).
METHODS
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 return0
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 return0
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 <alexbio@cpan.org>
Jacques Germishuys <jacquesg@cpan.org>
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.