Git::Raw::Index - Git index class
version 0.78
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).
Create a new in memory index. This is currently of little use.
Retrieve the Git::Raw::Repository owning the index.
Add $entry to the index. $entry should either be the path of a file or alternatively a Git::Raw::Index::Entry.
$entry
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.
$path
$buffer
$mode
0100644
Add or update all index entries to match the working directory. Valid fields for the %opts hash are:
%opts
"paths"
List of path patterns to add.
"flags"
Valid fields for the %flags member:
%flags
"force"
Forced addition of files (even if they are ignored).
"disable_pathspec_match"
Disable pathspec pattern matching against entries in $paths.
$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.
$pathspec
0
>0
<0
Find the first Git::Raw::Index::Entry which point to given $path. If an entry cannot be found, this function will return undef.
undef
Remove $path from the index.
Remove all matching index entries. See Git::Raw::Index->update_all() for valid %opts values.
Git::Raw::Index->update_all()
Retrieve the full path to the index file on disk.
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 the index.
Update the index reading it from disk.
Write the index to disk.
Replace the index contente with $tree.
$tree
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.
$repo
Update files in the working tree to match the contents of the index. See Git::Raw::Repository->checkout() for valid %checkout_opts values.
Git::Raw::Repository->checkout()
%checkout_opts
Retrieve the number of entries in the index.
Retrieve index entries. Returns a list of Git::Raw::Index::Entry objects.
Add a new conflict entry. $ancestor, $theirs and $ours should be Git::Raw::Index::Entry objects.
$ancestor
$theirs
$ours
Get the conflict entry for $path. If $path has no conflict entry, this function will return undef.
Determine if the index contains entries representing file conflicts.
Remove all conflicts in the index (entries with a stage greater than 0).
Retrieve index entries that represent a conflict. Returns a list of Git::Raw::Index::Conflict objects.
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:
%merge_opts
"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".
"ours"
"theirs"
"union"
"marker_size"
The size of conflict markers.
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.
"patience diff"
"minimal"
Take extra time to find minimal diff.
Update all index entries to match the working directory. Valid fields for the %opts hash are:
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.
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.
"ignore_case"
"no_filemode"
"no_symlinks"
Retrieve or set the index version.
Alessandro Ghedini <alexbio@cpan.org>
Jacques Germishuys <jacquesg@striata.com>
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.
To install Git::Raw, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Git::Raw
CPAN shell
perl -MCPAN -e shell install Git::Raw
For more information on module installation, please visit the detailed CPAN module installation guide.