Provided by: libarch-perl_0.5.2-3_all bug

NAME

       Arch::Changes - class representing a list of changes

SYNOPSIS

           use Arch::Changes qw(:type);

           use Arch::Tree;
           my $changes = $tree->get_changes;
           print $changes->get_listing;

           use Arch::Log;
           my $changed = $log->get_changes->is_changed('to', "COPYING");
           die "License was compromised" if $changed && $changed->{&MODIFY};

DESCRIPTION

       Arch::Changes contains a list of elements, each representing a single tree change. Each
       change element is described by a hash with the following fields:

       type
           The type of the change. Can be one of ADD, DELETE, MODIFY, META_MODIFY or RENAME.

       is_dir
           A boolean value indicating whether the affected tree element is a directory.

       arguments
           A list of arguments. The first element is always relative path of the affected tree
           element. For changes of type RENAME the first argument is the old path and the second
           argument the new path name.

       The type constants can be conveniently imported using the tag ":type".

           use Arch::Changes qw(:type);

METHODS

       The following methods are available:

       new, add, count, get, get_listing, is_changed, dump, type_string, to_string.

       new Creates a new, initially empty, changes list.

           Typically it is called indirectly from method get_changes in Arch::Changeset,
           Arch::Tree or Arch::Log class.

       add type is_dir arguments...
           Adds a new change element to the list of changes.

           Typically it is called indirectly from method get_changes in Arch::Changeset,
           Arch::Tree or Arch::Log class.

       count
           Returns the number of change elements.

       get num
           Returns the num-th change element or all if num is undefined.

       get_listing
           Generates a textual changes listing as produced by "tla changes".

       is_changed to filepath [is_dir]
           Verify whether the given filepath is modified by the changes. The to parameter may get
           boolean values "0", "1", "from" or "to", it only affects RENAME changes, and in some
           sense ADD and DELETE changes. If to is set, then the given filepath is taken as the
           destination of RENAME or ADD, otherwise as the source of RENAME or DELETE. The MODIFY
           and META_MODIFY changes are not affected, since the destination and the source is the
           same file/dir.

           If filepath is not modified by any changes, return undef.

           Otherwise, return hash with possible keys ADD, DELETE, MODIFY, META_MODIFY and RENAME.
           The hash values are 1 in all cases except for RENAME, then the value is the file name
           on the opposite side (i.e., the source of RENAME if to is true, and the destination if
           false).

           Note, the valid return values for arch are: undef, hashref with one key (ADD or
           DELETE) or hashref with combination of one-to-three keys (MODIFY, META_MODIFY and
           RENAME).

       dump
           Generates a dump of the changes list using Data::Dumper.

       type_string change
           Returns the change type string as produced by "tla changes".

       to_string change
           Generates a changes line for change as produced by "tla changes".

BUGS

       Awaiting for your reports.

AUTHORS

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

       Enno Cramer (uebergeek@web.de--2003/arch-perl--devel).

SEE ALSO

       For more information, see tla, Arch::Changeset, Arch::Tree, Arch::Log.