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.