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

NAME

       Arch::Changeset - class representing Arch changeset

SYNOPSIS

       Arch::Changeset objects may be created directly if you got a changeset directory:

           use Arch::Changeset;
           my $changeset = Arch::Changeset->new(
               'migo@homemail.com--Perl-GPL/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(
               'migo@homemail.com--Perl-GPL/arch-perl--devel--0--patch-6'
           );

           use Arch::Library;
           $changeset = Arch::Library->new->get_revision_changeset(
               'migo@homemail.com--Perl-GPL/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);

DESCRIPTION

       This class represents the changeset concept in Arch and provides some useful methods.

METHODS

       The following methods are available:

       new, get_patch, get_index, get_changes, get_all_diffs, join_all_diffs, ancestor.

       new revision-spec dir-name
           Construct the Arch::Changeset object associated with the given fully-qualified
           revision-spec and the existing directory dir-name.

       get_patch file-path
       get_patch file-path type
       get_patch file-path type full-file-asis
           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 "patch",
           "new" or "removed") 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.

       get_index name
           Returns the content of the index file name as an ID => path hash.

           Valid names are 'orig-dirs-index', 'orig-files-index', 'mod-dirs-index' and
           'mod-files-index'.

       get_changes
           Returns a list of changes in the changeset.

       get_all_diffs
           Returns all diffs in the changeset (array or arrayref). This includes changes of types
           MODIFY, ADD and DELETE.

       join_all_diffs
           Returns concatenated output of all diffs in the changeset.

       ancestor
           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.

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::Util.