Class representing arch changeset
Arch::Changeset objects may be created directly if you got a changeset directory:
use Arch::Changeset; my $changeset = Arch::Changeset->new( '[email protected]/arch-perl--devel--0--patch-6', '/tmp/,,changeset-6', );
But often are created indirectly by other objects:
use Arch::Session; $changeset = Arch::Session->new->get_revision_changeset( '[email protected]/arch-perl--devel--0--patch-6' );
use Arch::Library; $changeset = Arch::Library->new->get_revision_changeset( '[email protected]/arch-perl--devel--0--patch-6' );
print scalar $changeset->get_patch("perllib/Arch/Changeset.pm");
my $diff_file = ($changeset->get_patch("README", 1))[2]; print Arch::Util::load_file($diff_file);
This class represents the changeset concept in Arch and provides some useful methods.
The following methods are available:
new, get_patch, get_index, get_changes, get_all_diffs, join_all_diffs, ancestor.
Construct the Arch::Changeset object associated with the given fully-qualified revision-spec and the existing directory dir-name.
Return the patch (or otherwise content) of the given file-path in the changeset. type is integer: 0 (unknown, try to autodetect, this is the default), 1 (modified file, or metadata change), 2 (new file), 3 (removed file). The default behaviour is to create a fake diff against /dev/null for non-binary new and removed files; the full-file-asis flag, if set to true, changes this behaviour and causes to return the content of such file as-is. Binary new and removed files are always returned as-is regardless of the flag. This flag is also ignored if type is 1. In the scalar content return the patch in diff\|(1) format (or the whole file content as described above). In the list content return 4 scalars: the patch, the file name on the disk containing this patch (or the whole file), the change type (that is \*(L"patch\*(R", \*(L"new\*(R" or \*(L"removed\*(R") and the as-is flag. The returned values that follow the first one (the patch/file content) share the order of the corresponding parameters; the parameters are more hints, while the returned values accurately describe the content.
Returns the content of the index file name as an \s-1ID\s0 => path hash. Valid names are 'orig-dirs-index', 'orig-files-index', 'mod-dirs-index' and 'mod-files-index'.
Returns a list of changes in the changeset.
Returns all diffs in the changeset (array or arrayref). This includes changes of types \s-1MODIFY\s0, \s-1ADD\s0 and \s-1DELETE\s0.
Returns concatenated output of all diffs in the changeset.
Return the ancestor of the changeset. If =ancestor file is found (that is the case for library changesets) its content is returned, otherwise try to guess the ancestor of the revision using Arch::Util::adjacent_revision.
Awaiting for your reports.
Mikhael Goikhman ([email protected]\*(--Perl-GPL/arch-perl\*(--devel).
For more information, see tla, Arch::Session, Arch::Library, Arch::Util.