Security Advisories (2)
CVE-2014-9390 (2020-02-12)

Git before 1.8.5.6, 1.9.x before 1.9.5, 2.0.x before 2.0.5, 2.1.x before 2.1.4, and 2.2.x before 2.2.1 on Windows and OS X; Mercurial before 3.2.3 on Windows and OS X; Apple Xcode before 6.2 beta 3; mine all versions before 08-12-2014; libgit2 all versions up to 0.21.2; Egit all versions before 08-12-2014; and JGit all versions before 08-12-2014 allow remote Git servers to execute arbitrary commands via a tree containing a crafted .git/config file with (1) an ignorable Unicode codepoint, (2) a git~1/config representation, or (3) mixed case that is improperly handled on a case-insensitive filesystem.

CVE-2018-25032 (2022-03-25)

zlib before 1.2.12 allows memory corruption when deflating (i.e., when compressing) if the input has many distant matches.

NAME

Git::Raw::Tree - Git tree class

VERSION

version 0.30

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::TreeEntry objects.

entry_byname( $name )

Retrieve a Git::Raw::TreeEntry object by name.

entry_bypath( $path )

Retrieve a Git::Raw::TreeEntry object by path.

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 L"a".)

    • "b"

      The virtual "directory" to prefix to new file names in hunk headers. (Default is L"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.