Git::Raw::Index(3pm)

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 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.

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.