---
name: "Git::Repository::Log"
section: "3pm"
platform: "linux"
package: "libgit-repository-plugin-log-perl"
version: "1.314-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Git::Repository::Log"
---

# Git::Repository::Log(3pm)

Class representing git log data

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

  ### Signature-related information

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