---
name: "Arch::Log"
section: "3pm"
platform: "linux"
package: "libarch-perl"
version: "0.5.2-2"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/Arch::Log"
---

# Arch::Log(3pm)

class representing Arch patch-log

## NAME

Arch::Log - class representing Arch patch-log

## SYNOPSIS

```
    use Arch::Log;
    my $log = Arch::Log->new($rfc2822_message_string);
    printf "Patch log date: %s\n", $log->header('standard_date');
    print $log->dump;
    my $first_new_file = $log->get_headers->{new_files}->[0];
```

## DESCRIPTION

This class represents the patch-log concept in Arch and provides some useful methods.

## METHODS

The following class methods are available:

**get\_message**, **get\_headers**, **header**, **get\_changes**, **split\_version**, **get\_version**, **get\_revision**, **get\_revision\_kind**, **get\_revision\_desc**, **dump**.

- **get\_message**

  Return the original message with that the object was constructed.

- **get\_headers**

  Return the hashref of all headers including body, see also `"header"` method.

- **header** name

  - **header** name \[new\_value\]

  Get or set the named header. The special name 'body' represents the message body (the text following the headers).

- **body** \[new\_value\]

  - existing\_header\_name \[new\_value\]

  This is just a shortcut for `"header"`('*method*'). However unlike `"header"`('*method*'), *method* fails instead of returning undef if the log does not have the given header name.

- **get\_changes**

  Return a list of changes in the corresponding changeset.

  **ATTENTION!** Patch logs do not distinguish metadata (ie permission) changes from ordinary content changes. Permission changes will be represented with a change type of 'M'. This is different from Arch::Changeset::**get\_changes** and Arch::Tree::**get\_changes**.

- **split\_version**

  Return a list of 2 strings: full version and patch-level.

- **get\_version**

  Return the full version name, not unlike **split\_version**.

- **get\_revision**

  Return the full revision name.  This is currently a concatination of headers Archive and Revision with '/' separator.

- **get\_revision\_kind**

  Return one of the strings 'tag', 'import' or 'cset' depending on the revision kind this log represents.

- **get\_revision\_desc**

  Return revision description hashref with the keys: name, version, summary, creator, email, date, kind.

- **dump**

  Returns the object dump using Data::Dumper.

## BUGS

Awaiting for your reports.

## AUTHORS

Mikhael Goikhman (migo@homemail.com--Perl-GPL/arch-perl--devel).

## SEE ALSO

For more information, see tla, Arch::Session, Arch::Library, Arch::Changes.
