tla (1) Linux Manual Page
NAME
tla – arch command line client tool
SYNOPSIS
tla command [ command_options ]
tla command [-h|–help|-H]
tla [-h|–help|-H|-V|–version]
DESCRIPTION
tla is an implementation of arch.
arch is a version control system, which allows you to keep old versions of files and directories (usually source code), keep a log of who, when, and why changes occurred, etc., like SVN, CVS, or RCS.
arch has a number of advantages compared to competing systems. Among these are:
Works on Whole Trees
arch keeps track of whole trees — not just individual files. For example, if you change many files in a tree, arch can record all of those changes as a group rather than file-by-file; if you rename files or reorganize a tree, arch can record those tree arrangements along with your changes to file contents.
Changeset Oriented
arch doesn’t simply "snapshot" your project trees. Instead, arch associates each revision with a particular changeset: a description of exactly what has changed. arch provides changeset oriented commands to help you review changesets, merge trees by applying changesets, examine the history of a tree by asking what changesets have been applied to it, and so forth.
Fully Distributed
arch doesn’t rely on a central repository. For example, there is no need to give write access to a project’s archive to all significant contributors. Instead, each contributor can have their own archive for their work. arch seamlessly operates across archive boundaries.
COMMAND OVERVIEW
Help
tla help [options]- provide help with arch
User Commands
tla my-id [options] [id]- print or change your id
tla my-default-archive [options] [archive]- print or change your default archive
tla register-archive [options] [archive] location- change an archive location registration
tla archive-register [options] [archive] location- change an archive location registration
tla whereis-archive [options] archive- print an archive location registration
tla archives [options] [search regular expression]- report registered archives and their locations
Project Tree Commands
tla init-tree [options] [[archive]/version]- initialize a new project tree
tla tree-root [options] [dir]- find and print the root of a project tree
tla tree-version [options] [dir]- print the default version for a project tree
tla tree-id [options] [dir]- Print the tree identifier for a project tree
tla tree-revision [options] [dir]- Print the tree identifier for a project tree
tla set-tree-version [options] [archive]/version- set the default version for a project tree
tla undo [options] [revision] [– file …]- undo and save changes in a project tree
tla redo [options] [changeset]- redo changes in project tree
tla changes [options] [revision] [– limit…]- report about local changes in a project tree
tla file-diff [options] file [revision]- show local changes to a file
tla diff [options] [revision] [– files…]- report about local changes in a project tree
tla export [options] [revision] dir- export all or some of a tree revision
Project Tree Inventory Commands
tla inventory [options] [–] [dir]*- inventory a source tree
tla tree-lint [options] [dir]- audit a source tree
tla lint [options] [dir]- audit a source tree
tla id [options] file …- report the inventory id for a file
tla id-tagging-method [options] [method]- print or change a project tree id tagging method
tla add [options] file …- add an explicit inventory id
tla add-id [options] file …- add an explicit inventory id
tla delete-id [options] file …- remove an explicit inventory id
tla move-id [options] from to- move an explicit inventory id
tla touch [options] file …- add an explicit inventory id, touching the file.
tla rm [options] file…- remove a file (or dir, or symlink) and its explicit inventory tag
tla mv [options] from to OR from1 from2 … dir- move a file (or dir, or symlink) and its explicit inventory tag
tla explicit-default [options] [TAG-PREFIX]- print or modify default ids
tla default-id [options] [TAG-PREFIX]- print or modify default ids
tla id-tagging-defaults [options]- print the default =tagging-method contents
Patch Set Commands
tla changeset [options] ORIG MOD DEST [files]- compute a whole-tree changeset
tla mkpatch [options] ORIG MOD DEST [files]- compute a whole-tree changeset
tla apply-changeset [options] CHANGESET [TARGET]- apply a whole-tree changeset
tla dopatch [options] CHANGESET [TARGET]- apply a whole-tree changeset
tla show-changeset [options] [dir]- generate a report from a changeset
Archive Transaction Commands
tla make-archive [options] name location- create a new archive directory
tla archive-create [options] name location- create a new archive directory
tla archive-setup [options] [version …]- create new categories, branches and versions
tla make-category [options] category- create a new archive category
tla make-branch [options] branch- create a new archive branch
tla make-version [options] version- create a new archive version
tla import [options] [[archive]/version]- archive a full-source base-0 revision
tla commit [options] [[archive]/version] [– file …]- archive a changeset-based revision
tla get [options] revision [dir]- construct a project tree for a revision
tla get-changeset [options] revision [dir]- retrieve a changeset from an archive
tla lock-revision [options] revision- lock (or unlock) an archive revision
tla archive-mirror [options] [from [to] [limit]]- update an archive mirror
Archive Commands
tla abrowse [options] [limit]- print an outline describing archive contents
tla rbrowse [options] [[ARCHIVE_NAME/]LIMIT_REGEX]- print an outline describing an archive’s contents
tla categories [options] [archive]- list the categories in an archive
tla branches [options] [category]- list the branches in an archive category
tla versions [options] [branch]- list the versions in an archive branch
tla revisions [options] [version]- list the revisions in an archive version
tla ancestry [options] [revision]- display the ancestory of a revision
tla ancestry-graph [options] [revision]- display the ancestory of a revision
tla cat-archive-log [options] revision- print the contents of an archived log entry
tla cacherev [options] [revision]- cache a full source tree in an archive
tla cachedrevs [options] [version]- list cached revisions in an archive
tla uncacherev [options] revision [dir]- remove a cached full source tree from an archive
tla archive-meta-info [options] item-name- report meta-info from an archive
tla archive-snapshot [options] dir [limit]- update an archive snapshot
tla archive-version [options]- list the archive-version in an archive
tla archive-fixup [options]- fix ancillary files in an archive
Patch Log Commands
tla make-log [options] [version]- initialize a new log file entry
tla log-versions [options]- list patch log versions in a project tree
tla add-log-version [options] [archive]/version- add a patch log version to a project tree
tla remove-log-version [options] [archive]/version- remove a version’s patch log from a project tree
tla logs [options] [[archive]/version …]- list patch logs for a version in a project tree
tla cat-log [options] revision-spec- print the contents of a project tree log entry
tla changelog [options] [[archive]/version]- generate a ChangeLog from a patch log
tla log-for-merge [options] [[archive]/version]- generate a log entry body for a merge
tla merges [options] INTO [FROM]- report where two branches have been merged
tla new-merges [options] [[archive]/version]- list tree patches new to a version
Multi-project Configuration Commands
tla build-config [options] config- instantiate a multi-project config
tla cat-config [options] config- output information about a multi-project config
Commands for Branching and Merging
tla tag [options] SOURCE-REVISION TAG-VERSION- create a continuation revision
tla branch [options] [SOURCE] BRANCH- create a continuation revision
tla switch [options] [package]- change the working trees version
tla update [options] [version/revision]- update a project tree
tla replay [options] [version/revision…]- apply revision changesets to a project tree
tla star-merge [options] [FROM]- merge mutually merged branches
tla apply-delta [options] FROM(REVISION|DIR) TO(REVISION|DIR)- compute a changeset between any two trees or revisions and apply it to a project tree
tla missing [options] [version]- print patches missing from a project tree
tla join-branch [options] version- add a version as an ancestor of a project tree
tla sync-tree [options] revision- unify a project tree’s patch-log with a given revision
tla delta [options] (REVISION|TREE)-A (REVISION|TREE)-B [DESTDIR]- compute a changeset (or diff) between any two trees or revisions
Local Cache Commands
tla changes [options] [revision] [– limit…]- report about local changes in a project tree
tla file-diff [options] file [revision]- show local changes to a file
tla file-find [options] file [revision]- find given version of file
tla pristines [options] [limit]- list pristine trees in a project tree
tla lock-pristine [options] revision- lock (or unlock) a pristine tree
tla add-pristine [options] revision- ensure that a project tree has a particular pristine revision
tla find-pristine [options] revision- find and print the path to a pristine revision
Revision Library Commands
tla my-revision-library [options] [dir]- print or change your revision library path
tla library-dir [options] [dir]- print or change your revision library path
tla library-config [options] library-dir- configure parameters of a revision library
tla library-find [options] revision- find and print the location of a revision in the revision library
tla library-add [options] revision- add a revision to the revision library
tla library-remove [options] revision- remove a revision from the revision library
tla library-archives [options]- list the archives in your revision library
tla library-categories [options] [archive]- list the categories in your revision library
tla library-branches [options] [category]- list the branches in a library category
tla library-versions [options] [branch]- list the versions in a library branch
tla library-revisions [options] [version]- list the revisions in a library version
tla library-log [options] revision- output a log message from the revision library
tla library-file [options] file revision- find a file in a revision library
Published Revisions Commands
tla grab [options] location- grab a published revision
Miscellaneous Scripting Support
tla parse-package-name [options] name- parse a package name
tla valid-package-name [options] name- test a package name for validity
tla escape [–unescaped] string- print strings in escaped or unescaped form
HELP
tla help
provide help with arch
Usage: tla help [options]
This command prints a list of the available commands.
To see just a list of the options to a particular command, use:
(where $cmd is the name of the command). For additional explanation about a given command, use:
USER COMMANDS
tla my-id
print or change your id
Usage: tla my-id [options] [id]
With no argument print your arch id.
With an argument, record ID-STRING as your id in ~/.arch-params/=id
Your id is recorded in various archives and log messages as you use arch. It must consist entirely of printable characters and fit on one line. By convention, it should have the form of an email address, as in this example:
The portion of an id string between < and > is called your uid. arch sometimes uses your uid as a fragment when generating unique file names.
The option -u (–uid) causes only the uid part of your id string to be printed.
tla my-default-archive
print or change your default archive
Usage: tla my-default-archive [options] [archive]
With no argument, and without -d, print the name of your default archive.
With an argument, record ARCHIVE as your default archive in ~/.arch-params/=default-archive
With the option -d (–delete) and no argument, ensure that you do not have a default archive set in ~/.arch-params.
Your default archive is determined this way:
If the option -A (–archive) is given and not empty, that archive is the default (which makes this script useful for processing a -A argument that was passed to another script).
If -A is not given, but ~/.arch-params/=default-archive exists and is not empty, that is your default archive.
Otherwise, your default archive is the name of the local archive rooted at the argument to -R (–root) or specified in the environment variable ARCHROOT.
If no default archive can be found by any of these means, the program exits with status 1, printing an error message unless the -s (–silent) option is given.
tla register-archive
change an archive location registration
Usage: tla register-archive [options] [archive] location
Record the location of ARCHIVE.
With -d, remove the registration of a previously registered archive. When accompanied by -f, override permissions on the registration file and don’t complain if the archive is not registered.
A LOCATION should be either a directory name or a distant URL.
When registering a new archive, if no ARCHIVE’s name is passed on the command line, then the archive’s name will be read automatically from the archive’s meta data.
Archive locations are stored in ~/.arch-params/=locations.
You must register the location of a remote archive before you access it. It is not strictly necessary to register the locations of local archives (you can always specify their location using command line arguments and/or environment variables), but registering local archive locations is recommend (for simplicity).
tla archive-register
(alias for register-archive)
Usage: tla archive-register [options] [archive] location
Record the location of ARCHIVE.
With -d, remove the registration of a previously registered archive. When accompanied by -f, override permissions on the registration file and don’t complain if the archive is not registered.
A LOCATION should be either a directory name or a distant URL.
When registering a new archive, if no ARCHIVE’s name is passed on the command line, then the archive’s name will be read automatically from the archive’s meta data.
Archive locations are stored in ~/.arch-params/=locations.
You must register the location of a remote archive before you access it. It is not strictly necessary to register the locations of local archives (you can always specify their location using command line arguments and/or environment variables), but registering local archive locations is recommend (for simplicity).
tla whereis-archive
print an archive location registration
Usage: tla whereis-archive [options] archive
Print the registered location of an archive.
Usually the archive must have been previously registered with "tla register-archive".
As a special exception, the the archive is not registered, but is the name of the archive rooted at the location given with the option -R (–root) or in the environment variable ARCHROOT then print that root directory.
tla archives
report registered archives and their locations
Usage: tla archives [options] [search regular expression]
Print a list of registered archives and their locations
If [search regex] is given then only archives with names that match [search regex] will be shown
PROJECT TREE COMMANDS
tla init-tree
initialize a new project tree
Usage: tla init-tree [options] [[archive]/version]
Initialize DIR as a new project tree.
An empty patch-log for VERSION will be created, and VERSION will be made the default location for check-ins.
tla tree-root
find and print the root of a project tree
Usage: tla tree-root [options] [dir]
Find and print the root of the project tree that contains DIR (or the current directory). The option –accurate checks for three possibilities:
In case 1, exit with an error and error message.
In case 2, install the log file before printing the tree root and exiting normally.
In case 3, print the tree root and exit normally.
tla tree-version
print the default version for a project tree
Usage: tla tree-version [options] [dir]
Print the default version of project tree DIR (or the current directory).
tla tree-id
Print the tree identifier for a project tree
Usage: tla tree-id [options] [dir]
Print the patchset identifier that represents the current tree-> I.e. foo [at] example.com/demo–1.0–patch-4. Defaults to the tree the current directory is in.
tla tree-revision
Print the tree identifier for a project tree
Usage: tla tree-revision [options] [dir]
Print the patchset identifier that represents the current tree-> I.e. foo [at] example.com/demo–1.0–patch-4. Defaults to the tree the current directory is in.
tla set-tree-version
set the default version for a project tree
Usage: tla set-tree-version [options] [archive]/version
This operation sets the default version on which to check-in the source tree DIR (default: the current directory) during a commit.
You can specify the archive for this version as an ordinary command line argument (ARCHIVE/VERSION) or via -R, -A and the environment as usual (try "tla my-default-archive –help").
tla undo
undo and save changes in a project tree
Usage: tla undo [options] [revision] [– file …]
Compute a patch set describing the changes from REVISION to the project tree containing DIR. Save the patch in PATCH-DIR (which must not already exist) and apply the patch in reverse to the project tree containing DIR.
The effect is to remove local changes in the DIR project tree but save them in a convenient form.
If FILE (a list of file names) is specified, then only changes to those files will be undone.
If REVISION is not specified, the latest ancestor of the default version of project tree is used.
If REVISION is specified as a VERSION, the latest ancestor of the project tree in that VERSION is used.
If DIR is not specified, "." is assumed.
If PATCH-DIR is not specified, a temporary file-name of the matching ,,undo-* is used.
If –no-output is specified, the patch set is not saved.
See also "tla redo -H" and "tla changes -H".
tla redo
redo changes in project tree
Usage: tla redo [options] [changeset]
Apply CHANGESET to the project tree and then delete CHANGESET.
If CHANGESET is not specified, the highest numbered ,,undo-N directory in the project tree root is used.
If –keep is given, the changeset directory is not deleted.
See also "tla undo –help" and "tla apply-changeset –help".
tla changes
report about local changes in a project tree
Usage: tla changes [options] [revision] [– limit…]
Generate a patch report describing the differences between the project tree containing DIR (or the current directory) and REVISION.
The default patch level for a given version is the latest level for which the project tree has a patch. The default archive and version is as printed by "tla tree-version".
tla file-diff
show local changes to a file
Usage: tla file-diff [options] file [revision]
Print diffs between FILE and the corresponding file in a cached copy of REVISION.
The default patch level for a given version is the latest level for which the project tree has a patch. The default archive and version is as printed by "tla tree-version".
tla diff
report about local changes in a project tree
Usage: tla diff [options] [revision] [– files…]
Generate a patch report describing the differences between the project tree containing DIR (or the current directory) and REVISION.
The default patch level for a given version is the latest level for which the project tree has a patch. The default archive and version is as printed by "tla tree-version".
tla export
export all or some of a tree revision
Usage: tla export [options] [revision] dir
Extract REVISION from an archive, creating a new source tree with no control information. Note if export the local tree revision, local modifications will not be included; the exported file will only be copies in the repository
PROJECT TREE INVENTORY COMMANDS
tla inventory
inventory a source tree
Usage: tla inventory [options] [–] [dir]*
