NAME

Git::Raw::Tree - Git tree class

VERSION

version 0.37

DESCRIPTION

A Git::Raw::Tree represents a Git tree.

WARNING: The API of this module is unstable and may change without warning (any change will be appropriately documented in the changelog).

METHODS

lookup( $repo, $id )

Retrieve the tree corresponding to C$id>. This function is pretty much the same as $repo->lookup($id) except that it only returns trees.

id( )

Retrieve the id of the tree, as string.

entries( )

Retrieve a list of Git::Raw::Tree::Entry objects.

entry_byname( $name )

Retrieve a Git::Raw::Tree::Entry object by name.

entry_bypath( $path )

Retrieve a Git::Raw::Tree::Entry object by path.

merge( $ancestor, $theirs, [\%merge_opts] )

Merge $theirs into this tree. $ancestor and $theirs should be Git::Raw::Tree objects. See Git::Raw::Repository->merge() for valid %merge_opts values. Returns a Git::Raw::Index object containing the merge result.

diff( [\%opts] )

Compute the Git::Raw::Diff between two trees. Valid fields for the %opts hash are:

  • "tree"

    If provided, the diff is computed against "tree". The default is the repo's working directory.

  • "flags"

    Flags for generating the diff. Valid values include:

    • "reverse"

      Reverse the sides of the diff.

    • "include_ignored"

      Include ignored files in the diff.

    • "recurse_ignored_dirs"

      Even if "include_ignored" is specified, an entire ignored directory will be marked with only a single entry in the diff. This flag adds all files under the directory as ignored entries, too.

    • "include_untracked"

      Include untracked files in the diff.

    • "recurse_untracked_dirs"

      Even if "include_untracked" is specified, an entire untracked directory will be marked with only a single entry in the diff (core git behaviour). This flag adds all files under untracked directories as untracked entries, too.

    • "ignore_filemode"

      Ignore file mode changes.

    • "ignore_submodules"

      Treat all submodules as unmodified.

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

  • "prefix"

    • "a"

      The virtual "directory" to prefix to old file names in hunk headers. (Default is "a".)

    • "b"

      The virtual "directory" to prefix to new file names in hunk headers. (Default is "b".)

  • "context_lines"

    The number of unchanged lines that define the boundary of a hunk (and to display before and after)

  • "interhunk_lines"

    The maximum number of unchanged lines between hunk boundaries before the hunks will be merged into a one.

  • "paths"

    A list of paths to constrain diff.

is_tree( )

Returns true.

is_blob( )

Returns false.

AUTHOR

Alessandro Ghedini <alexbio@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.