Arch::Session - access arch archives


    use Arch::Session;
    my $session = Arch::Session->new;
    my $rev  = '';
    my $log  = $session->get_revision_log($rev);
    my $cset = $session->get_revision_changeset($rev);
    my $tree = $session->get_tree($rev);


Arch::Session provides an interface to access changesets and logs stored in arch archives.


The following common methods (inherited and pure virtual that this class implements) are documented in Arch::Storage:

new, init, working_name, working_names, fixup_name_alias, is_archive_managed, expanded_revisions.

archives, categories, branches, versions, revisions, get_revision_descs, expanded_archive_info, get_revision_changeset, get_changeset, get_revision_log, get_log.

Additionally, the following methods are available:

get_specified_changeset, clear_cache, get_tree, init_tree, my_id.

get_specified_changeset arg
Get changeset object (Arch::Changeset) by a user specified input. arg may be revision name, or changeset directory, or tree directory (then changeset for tree changes is constructed), and in the future local tarball filepath or remote tarball url.

clear_cache [key ..]
For performance reasons, most method results are cached (memoized in fact). Use this method to explicitly request this cache to be cleared.

By default all cached keys are cleared; key may be one of the strings 'archives', 'categories', 'branches', 'versions', 'revisions' or 'revision_descs'.

get_tree [{ options }] [revision [dir]]
Construct a working tree for revision or working_name in dir. If dir is not specified, a new temporary directory is automatically created.

Keys of options may be pristine, link, library, sparse, non_sparse, no_greedy_add; all are false by default. See tla get.

init_tree dir
Run tla init-tree in dir.

my_id [newid]
Get or set tla my-id.


No known bugs.


Mikhael Goikhman (

Enno Cramer (


For more information, see tla, Arch::Storage, Arch::Library, Arch::Name, Arch::Log, Arch::Changeset.