logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Git::Raw::Index - Git index class

Author

       Alessandro Ghedini <alexbio@cpan.org>

       Jacques Germishuys <jacquesg@cpan.org>

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.

Name

       Git::Raw::Index - Git index class

Version

       version 0.90

See Also