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.