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.