Class representing a list of changes
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};
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:
The type of the change. Can be one of \s-1ADD\s0, \s-1DELETE\s0, \s-1MODIFY\s0, \s-1META_MODIFY\s0 or \s-1RENAME\s0.
A boolean value indicating whether the affected tree element is a directory.
A list of arguments. The first element is always relative path of the affected tree element. For changes of type \s-1RENAME\s0 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 \*(C`:type\*(C'.
use Arch::Changes qw(:type);
The following methods are available:
new, add, count, get, get_listing, is_changed, dump, type_string, to_string.
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.
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.
Returns the number of change elements.
Returns the num-th change element or all if num is undefined.
Generates a textual changes listing as produced by \*(C`tla changes\*(C'.
Verify whether the given filepath is modified by the changes. The to parameter may get boolean values \*(L"0\*(R", \*(L"1\*(R", \*(L"from\*(R" or \*(L"to\*(R", it only affects \s-1RENAME\s0 changes, and in some sense \s-1ADD\s0 and \s-1DELETE\s0 changes. If to is set, then the given filepath is taken as the destination of \s-1RENAME\s0 or \s-1ADD\s0, otherwise as the source of \s-1RENAME\s0 or \s-1DELETE\s0. The \s-1MODIFY\s0 and \s-1META_MODIFY\s0 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 \s-1ADD\s0, \s-1DELETE\s0, \s-1MODIFY\s0, \s-1META_MODIFY\s0 and \s-1RENAME\s0. The hash values are 1 in all cases except for \s-1RENAME\s0, then the value is the file name on the opposite side (i.e., the source of \s-1RENAME\s0 if to is true, and the destination if false). Note, the valid return values for arch are: undef, hashref with one key (\s-1ADD\s0 or \s-1DELETE\s0) or hashref with combination of one-to-three keys (\s-1MODIFY\s0, \s-1META_MODIFY\s0 and \s-1RENAME\s0).
Generates a dump of the changes list using Data::Dumper.
Returns the change type string as produced by \*(C`tla changes\*(C'.
Generates a changes line for change as produced by \*(C`tla changes\*(C'.
Awaiting for your reports.
Mikhael Goikhman ([email protected]\*(--Perl-GPL/arch-perl\*(--devel).
Enno Cramer ([email protected]/arch-perl\*(--devel).
For more information, see tla, Arch::Changeset, Arch::Tree, Arch::Log.