NAME

Git::Repository::Log - Class representing git log data

SYNOPSIS

# load the Log plugin
use Git::Repository 'Log';

# get the log for last commit
my ($log) = Git::Repository->log( '-1' );

# get the author's email
print my $email = $log->author_email;

DESCRIPTION

Git::Repository::Log is a class whose instances represent log items from a git log stream.

CONSTRUCTOR

This method shouldn't be used directly. Git::Repository::Log::Iterator should be the preferred way to create Git::Repository::Log objects.

new

Create a new Git::Repository::Log instance, using the list of key/values passed as parameters. The supported keys are (from the output of git log --pretty=raw):

commit

The commit id (ignoring the extra information added by --decorate).

tree

The tree id.

parent

The parent list, separated by spaces.

author

The author information.

committer

The committer information.

message

The log message (including the 4-space indent normally output by git log).

gpgsig

The commit signature.

mergetag

The mergetag information.

diff_from

The commit from which the diff was taken.

This is the extra from information on the commit header that is added by git when the log contains a diff (using the -p or --name-status option). In this case, git log may show the same commit several times.

extra

Any extra text that might be added by extra options passed to git log (e.g. -p or --name-status).

Note that since git tag --pretty=raw does not provide the encoding header (and provides the message properly decoded), this information will not be available via Git::Repository::Plugin::Log.

ACCESSORS

The following accessors methods are recognized. They all return scalars, except for parent(), which returns a list.

Commit information

commit
tree
parent

Author and committer information

author
committer

The original author/committer line

author_name
committer_name
author_email
committer_email

Date information

author_gmtime
committer_gmtime
author_localtime
committer_localtime
author_tz
committer_tz

Log information

raw_message

The log message with the 4-space indent output by git log.

message

The unindented version of the log message.

subject
body
gpgsig
mergetag

Extra information

extra

COPYRIGHT

Copyright 2010-2016 Philippe Bruhat (BooK), all rights reserved.

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.