View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Jacques Germishuys > Git-Raw > Git::Raw::Index



Annotate this POD


View/Report Bugs
Module Version: 0.79   Source  


Git::Raw::Index - Git index class


version 0.79


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:

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:

update_all( \%opts )

Update all index entries to match the working directory. Valid fields for the %opts hash are:

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.


Alessandro Ghedini <>

Jacques Germishuys <>


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 for more information.

syntax highlighting: