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.