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]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -b, --basic    Display basic commands only
  -V, --version  Display a release identifier string
           and exit.

This command prints a list of the available commands.

To see just a list of the options to a particular command, use:


 tla $cmd -h

(where $cmd is the name of the command). For additional explanation about a given command, use:


 tla $cmd -H

USER COMMANDS

tla my-id

print or change your id

Usage: tla my-id [options] [id]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -e, --errname  specify program name for errors
  -u, --uid      print only the UID portion of the 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:


  Jane Hacker <jane.hacker [at] gnu.org>

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]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -e, --errname  specify program name for errors
  -d, --delete   unspecify your default archive
  -s, --silent   suppress reassuring messages

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


  -h, --help        Display a help message and exit.
  -H                Display a verbose help message and exit.
  -V, --version     Display a release identifier string
              and exit.
  -f, --force       overwrite existing location
  --present-ok      return 0 even if archive exists
  -d, --delete      delete archive registration

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


  -h, --help        Display a help message and exit.
  -H                Display a verbose help message and exit.
  -V, --version     Display a release identifier string
              and exit.
  -f, --force       overwrite existing location
  --present-ok      return 0 even if archive exists
  -d, --delete      delete archive registration

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


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

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]


  -h, --help            Display a help message and exit.
  -H                    Display a verbose help message and exit.
  -V, --version         Display a release identifier string
                  and exit.
  -n, --names           print archive names only
  -R, --exclude-remote  Exclude MIRROR and SOURCE archives.

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]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first
  --nested       initialize a nested project tree.

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]


  -h, --help      Display a help message and exit.
  -H              Display a verbose help message and exit.
  -V, --version   Display a release identifier string
            and exit.
  --accurate      error for mid-txn trees
  -s, --silent    exit status only

Find and print the root of the project tree that contains DIR (or the current directory). The option --accurate checks for three possibilities:


 1) The project tree was the subject of a commit that
 was killed before the log entry was added to the
 tree's patch log.  It is unknown whether or not
 the commit took place in the archive.  The {arch}
 directory contains the log file as "++mid-commit".


 2) The project tree was the subject of a killed commit, but
 it is certain the commit took place.  The log file
 is stored as "++commit-definite".


 3) The project tree patch log is fully up-to-date (as far as
 arch knows).

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]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

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]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

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]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

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


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first

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 ...]


  -h, --help              Display a help message and exit.
  -H                      Display a verbose help message and exit.
  -V, --version           Display a release identifier string
                    and exit.
  -A, --archive           Override `my-default-archive'
  -d, --dir DIR           cd to DIR first
  -o, --output PATCH-DIR  save changeset in PATCH-DIR
  -n, --no-output         do not save the changeset
  -N, --forward           pass the --forward option to `patch'
  -q, --quiet             no progress reports while computing changeset
  -x, --exclude FILE      exclude FILE from the files to commit
  --unescaped             show filenames in unescaped form

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]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -N, --forward    pass the --forward option to `patch'
  -k, --keep       do not delete the patch
  -q, --quiet      no progress reports while computing changeset
  -d, --dir DIR    Operate on project tree in DIR (default `.')
  --unescaped      show filenames in unescaped form

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...]


  -h, --help        Display a help message and exit.
  -H                Display a verbose help message and exit.
  -V, --version     Display a release identifier string and exit.
  -A, --archive     Override `my-default-archive'.
  -d, --dir DIR     Change to DIR first.
  -o, --output DIR  Save changeset in DIR (implies --keep).
  -v, --verbose     Verbose changeset report.
  -q, --quiet       Suppress progress information
  --diffs           Include diffs in the output.
  -k, --keep        Don't remove the output directory on termination.
  --link            hardlink unchanged files to revision library
  --unescaped       show filenames in unescaped form

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]


  -h, --help      Display a help message and exit.
  -H              Display a verbose help message and exit.
  -V, --version   Display a release identifier string
            and exit.
  -A, --archive   Override `my-default-archive'
  -N, --new-file  Treat missing file as empty

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...]


  -h, --help          Display a help message and exit.
  -H                  Display a verbose help message and exit.
  -V, --version       Display a release identifier string and exit.
  -A, --archive       Override `my-default-archive'.
  -d, --dir DIR       Change to DIR first.
  -o, --output DIR    Save changeset in DIR.
  -v, --verbose       Verbose changeset report.
  -q, --quiet         Suppress progress information
  -s, --summary       Do not include diffs in the output.
  -k, --keep          Don't remove the output directory on termination.
  -L, --latest        compare against the latest revision (HEAD) in branch
  -x, --exclude FILE  exclude FILE from the files to commit
  --link              hardlink unchanged files to revision library
  --unescaped         show filenames in unescaped form
  --limit LIMITS      limit the diff to LIMITS
  -D, --diff-options  specify options for `diff' (for display only)

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


  -d, --dir DIR  Change to DIR first.
  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -s, --silent   no output

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]*


  -h, --help          display help
  -H                  Display a verbose help message and exit.
  -V, --version       display version info
                
  -s, --source        list source files
  -p, --precious      list precious files
  -b, --backups       list backup files
  -j, --junk          list junk files
  -u, --unrecognized  list unrecognized files
  -t, --trees         list roots of nested trees
                
  -d, --directories   list only directories
  -f, --files         list only non-directories
  -B, --both          list both dirs and files
  --kind              indicate file kinds
                
  --all               include arch control files
  --nested            include nested trees
                
  --ids               list with ids (source files only)
  --untagged          include files that are missing ids
                
  --explicit          use explicit file ids
  --implicit          permit implicit file ids
  --tagline           permit tagline file ids
  --names             use name-based file ids
  --unescaped         show filenames in unescaped form

With no arguments, print a human-readable inventory report.

With category options (--source etc) limit the report to just those files. With no other options, the report includes all sections and files.

The options -d, -f, and -B cancel each other.

If a directory is precious, junk, or unrecognized, only the directory name itself is printed -- its contents are not searched.

Each command option implies the corresponding category option (e.g. "--source-command" implies "--source"). The exit status of the command is ignored.

tla tree-lint

(alias for lint)

Usage: tla tree-lint [options] [dir]


  -h, --help                Display a help message and exit.
  -H                        Display a verbose help message and exit.
  -V, --version             Display a release identifier string
                      and exit.
  -s, --broken-symlinks     Just list broken symlinks
  -u, --unrecognized-files  Just list files violating naming conventions
  -t, --untagged-files      Just list files lacking inventory ids
  -m, --missing-files       Just list inventory ids lacking corresponding files
  -d, --duplicate-ids       Just list duplicated ids
  --strict                  exit with non-0 status on _any_ oddity
  --unescaped               show filenames in unescaped form

Audit a source tree for missing files, untagged files, duplicate ids, and files not matching recognized naming conventions.

The default is to list files failing any of those tests. Enabling any of the `specific' tests disables the rest, unless they're explicitly enabled on the command line. Therefore, "tla tree-lint" is equivalent to "tla tree-lint -sutmd"

tla lint

audit a source tree

Usage: tla lint [options] [dir]


  -h, --help                Display a help message and exit.
  -H                        Display a verbose help message and exit.
  -V, --version             Display a release identifier string
                      and exit.
  -s, --broken-symlinks     Just list broken symlinks
  -u, --unrecognized-files  Just list files violating naming conventions
  -t, --untagged-files      Just list files lacking inventory ids
  -m, --missing-files       Just list inventory ids lacking corresponding files
  -d, --duplicate-ids       Just list duplicated ids
  --strict                  exit with non-0 status on _any_ oddity
  --unescaped               show filenames in unescaped form

Audit a source tree for missing files, untagged files, duplicate ids, and files not matching recognized naming conventions.

The default is to list files failing any of those tests. Enabling any of the `specific' tests disables the rest, unless they're explicitly enabled on the command line. Therefore, "tla tree-lint" is equivalent to "tla tree-lint -sutmd"

tla id

report the inventory id for a file

Usage: tla id [options] file ...


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  --implicit       Use the implicit id tagging method.
  --tagline        Use the tagline id tagging method (default).
  --explicit       Use the explicit id tagging method.
  --names          Use the names id tagging method.
  --silent         No output -- exit status only.
  --unescaped      show filenames in unescaped form

Print a file's inventory id.

tla id-tagging-method

print or change a project tree id tagging method

Usage: tla id-tagging-method [options] [method]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -d, --dir DIR  cd to DIR first
  --strict       exit with error if method not set

Print or change the method by which source files are identified in DIR (or the current directory).

When setting, METHOD must be one of:


  names           -- use naming conventions only
  implicit        -- use naming conventions but permit
                     for inventory tags
  explicit        -- require explicit designation of source
  tagline         -- mix names, explicit and arch-tag: methods

When printing, if --strict is provided but no id tagging method is explicitly set, print an error.

tla add

(alias for add-id)

Usage: tla add [options] file ...


  -h, --help           Display a help message and exit.
  -H                   Display a verbose help message and exit.
  -V, --version        Display a release identifier string
                 and exit.
  -s, --stop-on-error  stop adding further on error (default to continue)
  -i, --id ID          Specify ID, instead of using auto-generated id.

Create an explicit inventory id for FILE (which may be a regular file, symbolic link, or directory).

tla add-id

add an explicit inventory id

Usage: tla add-id [options] file ...


  -h, --help           Display a help message and exit.
  -H                   Display a verbose help message and exit.
  -V, --version        Display a release identifier string
                 and exit.
  -s, --stop-on-error  stop adding further on error (default to continue)
  -i, --id ID          Specify ID, instead of using auto-generated id.

Create an explicit inventory id for FILE (which may be a regular file, symbolic link, or directory).

tla delete-id

remove an explicit inventory id

Usage: tla delete-id [options] file ...


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

Remove an explicit inventory id for FILE (which may be a regular file, symbolic link, or directory).

tla move-id

move an explicit inventory id

Usage: tla move-id [options] from to


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

Move an explicit inventory id for FILE (which may be a regular file or symbolic link but which must not be a directory).

tla touch

add an explicit inventory id, touching the file.

Usage: tla touch [options] file ...


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -i, --id ID    Specify ID, instead of using auto-generated id.

Create an explicit inventory id for FILE (which may be a regular file, symbolic link, or directory). This command also sets the modification and access times of the file, creating it if necessary.

tla rm

remove a file (or dir, or symlink) and its explicit inventory tag

Usage: tla rm [options] file...


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

This command is suitable as a replacement for rm(1) within any tla tree for any remove operation, regardless of id tagging method.

tla mv

move a file (or dir, or symlink) and its explicit inventory tag

Usage: tla mv [options] from to OR from1 from2 ... dir


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

This command is suitable as a replacement for mv(1) within any tla tree for any move operation, regardless of id tagging method.

tla explicit-default

print or modify default ids

Usage: tla explicit-default [options] [TAG-PREFIX]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -D, --dir DIR    cd to DIR first
  -d, --delete     remove the default
  -s, --strong     use the strong default (default)
  -w, --weak       use the weak default
  --dont-care      use the dont-care default

For files in this directory, use:


  ID-PREFIX__BASENAME

as the default explicit id for all files in this directory that do not have an explicit explicit id.

With no arguments, print the previously set ID-PREFIX.

By default, this command sets, prints or deletes a "strong default" -- a default explicit id which overrides implicit ids.

With --weak, set (or print) a weak default id which is overridden by explicit ids.

The --dont-care option sets (or with -d, clears) a flag for that directory that causes unidged files not to be reported as such in "tla tree-lint" reports.

tla default-id

(alias for explicit-default)

Usage: tla default-id [options] [TAG-PREFIX]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -D, --dir DIR    cd to DIR first
  -d, --delete     remove the default
  -s, --strong     use the strong default (default)
  -w, --weak       use the weak default
  --dont-care      use the dont-care default

For files in this directory, use:


  ID-PREFIX__BASENAME

as the default explicit id for all files in this directory that do not have an explicit explicit id.

With no arguments, print the previously set ID-PREFIX.

By default, this command sets, prints or deletes a "strong default" -- a default explicit id which overrides implicit ids.

With --weak, set (or print) a weak default id which is overridden by explicit ids.

The --dont-care option sets (or with -d, clears) a flag for that directory that causes unidged files not to be reported as such in "tla tree-lint" reports.

tla id-tagging-defaults

print the default =tagging-method contents

Usage: tla id-tagging-defaults [options]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

Print the boilerplate contents that are used to initialize new =tagging-method files.

PATCH SET COMMANDS

tla changeset

compute a whole-tree changeset

Usage: tla changeset [options] ORIG MOD DEST [files]


  -h, --help             Display a help message and exit.
  -H                     Display a verbose help message and exit.
  -V, --version          Display a release identifier string
                   and exit.
  --file-list FILES      record only diffs of selected files
  --unescaped            show filenames in unescaped form

Create the output directory DESTINATION (it must not already exist).

Compare source trees ORIGINAL and MODIFIED. Create a changeset tree in DESTINATION

See also "tla apply-changeset -H".

tla mkpatch

(alias for changeset)

Usage: tla mkpatch [options] ORIG MOD DEST [files]


  -h, --help             Display a help message and exit.
  -H                     Display a verbose help message and exit.
  -V, --version          Display a release identifier string
                   and exit.
  --file-list FILES      record only diffs of selected files
  --unescaped            show filenames in unescaped form

Create the output directory DESTINATION (it must not already exist).

Compare source trees ORIGINAL and MODIFIED. Create a changeset tree in DESTINATION

See also "tla apply-changeset -H".

tla apply-changeset

apply a whole-tree changeset

Usage: tla apply-changeset [options] CHANGESET [TARGET]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -N, --forward    pass the --forward option to `patch'
  -r, --reverse    Apply the changeset in reverse
  --unescaped      show filenames in unescaped form

Apply the changeset CHANGESET to the source tree TARGET (default `.').

See also "tla changeset -H".

tla dopatch

(alias for apply-changeset)

Usage: tla dopatch [options] CHANGESET [TARGET]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -N, --forward    pass the --forward option to `patch'
  -r, --reverse    Apply the changeset in reverse
  --unescaped      show filenames in unescaped form

Apply the changeset CHANGESET to the source tree TARGET (default `.').

See also "tla changeset -H".

tla show-changeset

generate a report from a changeset

Usage: tla show-changeset [options] [dir]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  --diffs          include diff output
  --unescaped      show filenames in unescaped form

Produce a human-readable summary of a changeset.

ARCHIVE TRANSACTION COMMANDS

tla make-archive

create a new archive directory

Usage: tla make-archive [options] name location


  -h, --help                       Display a help message and exit.
  -H                               Display a verbose help message and exit.
  -V, --version                    Display a release identifier string
                             and exit.
  -m, --mirror MASTER              create mirror of specified archive
  -M, --mirror-from MASTER-SOURCE  create pull-based mirror of specified archive
  -l, --listing                    Keep .listing files up-to-date in this archive.
  -t, --tla                        Create a tla format archive.
  -b, --baz                        Create a baz format archive (the default).
  -s, --signed                     GPG sign the contents of this archive.

NAME is the global name for the archive. It must be an email address with a fully qualified domain name, optionally followed by "--" and a string of letters, digits, periods and dashes.

With --mirror, label the new archive as a mirror of MASTER. Ordinary commits can not be made to a mirror archive, however the command "tla archive-mirror" can write to a mirror.

Two special forms of this command are available:


tla make-archive --mirror MASTER LOCATION

is equivalent to:


tla make-archive --mirror MASTER MASTER-MIRROR LOCATION

and thus "tla archive-mirror MASTER" will push changes from MASTER to the newly created mirror.


tla make-archive --mirror-from MASTER-SOURCE LOCATION

is equivalent to:


tla make-archive --mirror MASTER-SOURCE MASTER LOCATION

and thus "tla archive-mirror MASTER" will pull changes from MASTER-SOURCE to the newly created mirror.

The first of these two special forms is especially handy when creating a remote mirror in which to publish a local repository.

The second special form is handy when creating a local mirror of a remote archive, locally bound to the remote archive's name.

The --tla option creates a tla format archive, the default is to create a Bazaar archive.

tla archive-create

(alias for make-archive)

Usage: tla archive-create [options] name location


  -h, --help                       Display a help message and exit.
  -H                               Display a verbose help message and exit.
  -V, --version                    Display a release identifier string
                             and exit.
  -m, --mirror MASTER              create mirror of specified archive
  -M, --mirror-from MASTER-SOURCE  create pull-based mirror of specified archive
  -l, --listing                    Keep .listing files up-to-date in this archive.
  -t, --tla                        Create a tla format archive.
  -b, --baz                        Create a baz format archive (the default).
  -s, --signed                     GPG sign the contents of this archive.

NAME is the global name for the archive. It must be an email address with a fully qualified domain name, optionally followed by "--" and a string of letters, digits, periods and dashes.

With --mirror, label the new archive as a mirror of MASTER. Ordinary commits can not be made to a mirror archive, however the command "tla archive-mirror" can write to a mirror.

Two special forms of this command are available:


tla make-archive --mirror MASTER LOCATION

is equivalent to:


tla make-archive --mirror MASTER MASTER-MIRROR LOCATION

and thus "tla archive-mirror MASTER" will push changes from MASTER to the newly created mirror.


tla make-archive --mirror-from MASTER-SOURCE LOCATION

is equivalent to:


tla make-archive --mirror MASTER-SOURCE MASTER LOCATION

and thus "tla archive-mirror MASTER" will pull changes from MASTER-SOURCE to the newly created mirror.

The first of these two special forms is especially handy when creating a remote mirror in which to publish a local repository.

The second special form is handy when creating a local mirror of a remote archive, locally bound to the remote archive's name.

The --tla option creates a tla format archive, the default is to create a Bazaar archive.

tla archive-setup

create new categories, branches and versions

Usage: tla archive-setup [options] [version ...]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -f, --file FILE  read the list of desired versions from FILE
  -b, --branches   make base-0 tags
  -c, --cache      archive cache when creating base-0 tags

Given a list of categories, branches, and versions, ensure that these exist in the appropriate archive.

For example, starting with an empty archive,:


 tla archive-setup  proja--devo--1.0 projb

creates a category, branch, and version for project A, and a category for project B

When the --file option is used, the list of items to create is read from a file (use "-" to indicate standard input).

With the --file option, the option --branches may be provided. In this case, the input should have two items per line: a target version (to create), and a source version to build a tag from. For example, given an input file containg:


 proja--devo--1.0  his [at] foo.com/proja--devo--1.0

with --branches, archive-setup creates a proja version in your default archive, and adds a base-0 revision to that project which is a tag of the latest revision in his [at] foo.com's archive. (This can make it quite easy to set-up a new archive which contains branches from existing archives, for example.)

If --branches is used, the --cache option may also be used. It causes each new base-0 revision to be archive-cached (see "tla cacherev -H")

tla make-category

create a new archive category

Usage: tla make-category [options] category


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Create CATEGORY as a category in the indicated archive. The category must not already exist.

tla make-branch

create a new archive branch

Usage: tla make-branch [options] branch


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Create BRANCH as a branch in the indicated archive.

The category containing the branch must already exist.

tla make-version

create a new archive version

Usage: tla make-version [options] version


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Create VERSION as a version in the indicated archive. The branch for this version must not already exist.

tla import

archive a full-source base-0 revision

Usage: tla import [options] [[archive]/version]


  -h, --help              Display a help message and exit.
  -H                      Display a verbose help message and exit.
  -V, --version           Display a release identifier string
                    and exit.
  -A, --archive           Override `my-default-archive'.
  -d, --dir DIR           Change to DIR first.
  -l, --log FILE          Commit with log file FILE.
  -s, --summary TEXT      log with summary TEXT plus log-for-merge output
  -L, --log-message TEXT  log with TEXT
  -S, --setup             Use `archive-setup' if necessary; implied by default.
  --no-setup              Do not use `archive-setup' even if necessary.
  --unescaped             show filenames in unescaped form

Archive a from-scratch base revision of the project tree containing DIR (or the current directory). Use this command to create the first revision of a new project.

If --log-message is specified without --summary, then TEXT is used both as the summary and the first line of the log body.

tla commit

archive a changeset-based revision

Usage: tla commit [options] [[archive]/version] [-- file ...]


  -h, --help                               Display a help message and exit.
  -H                                       Display a verbose help message and exit.
  -V, --version                            Display a release identifier string
                                     and exit.
  -A, --archive                            Override `my-default-archive'
  -d, --dir DIR                            cd to DIR first
  -l, --log FILE                           commit with log file FILE
  -s, --summary TEXT                       log with summary TEXT plus log-for-merge output
  -L, --log-message TEXT                   log with TEXT plus log-for-merge output
  -x, --exclude FILE                       exclude FILE from the files to commit
  --strict                                 strict tree-lint
  --seal                                   create a version-0 revision
  --fix                                    create a versionfix revision
  --out-of-date-ok                         commit even if out of date
  --file-list FILE                         commit only changes to files listed in FILE
  --write-revision REVISION_FILE_SPEC      write the new tree id to REVISION_FILE_SPEC before committing
  --unescaped                              show filenames in unescaped form

Archive a revision of the project tree containing DIR (or the current directory)

If there are any automated ChangeLog files, update them before computing the patch set.

If --log-message is specified without --summary, then TEXT is used both as the summary and the first line of the log body.

tla get

construct a project tree for a revision

Usage: tla get [options] revision [dir]


  -h, --help           Display a help message and exit.
  -H                   Display a verbose help message and exit.
  -V, --version        Display a release identifier string
                 and exit.
  -A, --archive        Override `my-default-archive'
  --cache DIR          cache root for trees with pristines
  --no-pristine        don't save a pristine copy
  --link               hardlink files to revision library instead of copying
  --library            ensure the revision is in a revision library
  --sparse             add library entries sparsely (--link, --library)
  --non-sparse         add library entries densely (--link, --library)
  -s, --silent         no output
  --no-greedy-add      do not allow greedy libraries to add revisions
  --unescaped          show filenames in unescaped form

Extract REVISION from an archive, creating the new project tree DIR. If DIR is not specified, store the working copy in a subdirectory of the current directory, giving it the name of the revision. CAUTION: when using the links option be sure to use copy-on-write on your editor or the revision library will be corrupted. Either way, the project tree must not already exist.

tla get-changeset

retrieve a changeset from an archive

Usage: tla get-changeset [options] revision [dir]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Retrieve the changeset for REVISION and store it in the directory DIR (or a directory named REVISION.patches). DIR must not already exist.

tla lock-revision

lock (or unlock) an archive revision

Usage: tla lock-revision [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -u, --unlock   release a lock owned by you
  -b, --break    break any existing lock

Acquire the lock needed to create REVISION.

Revision must be the next patch-level in sequence, however, if no patch level is specified, the lock is taken unconditionally. If no version is specified, the latest version is locked.

tla archive-mirror

update an archive mirror

Usage: tla archive-mirror [options] [from [to] [limit]]


  -h, --help         Display a help message and exit.
  -H                 Display a verbose help message and exit.
  -V, --version      Display a release identifier string
               and exit.
  --no-cached        don't copy cached revisions
  -s, --summary      print the summary of each patch
  --cached-tags      copy only cachedrevs for tags to other archives

If no arguments are given, update your `my-default-archive'-MIRROR archive with the contents of `my-default-archive'.

If a [FROM] archive is given, update the [FROM]-MIRROR archive with the contents of the [FROM] archive

If both [FROM] and [TO] archives are specified, update [TO] with the contents of [FROM]

If LIMIT is provided, it should be a category, branch, version, or revision name. Only the indicated part of FROM will be copied to TO. If LIMIT is a revision, then cached revisions will be copied and deleted to TO.

(see "tla make-archive -H".).

ARCHIVE COMMANDS

tla abrowse

print an outline describing archive contents

Usage: tla abrowse [options] [limit]


  -h, --help             Display a help message and exit.
  -H                     Display a verbose help message and exit.
  -V, --version          Display a release identifier string
                   and exit.
  -A, --archive          Override `my-default-archive'
  -r, --reverse          sort revisions from newest to oldest
  -s, --summary          print a summary of each patch
  -c, --creator          print the creator of each patch
  -D, --date             print the date of each patch
  -k, --kind             show each revision kind (import, changeset or id)
  -C, --cacherevs        show cached revisions
  -f, --full             print full patch level names
  --desc                 implies -s -c -D -k -C
  --local-merges         list merges from the same archive
  --foreign-merges       list merges from other archives
  --merges               list all merges
  --categories           show category names only
  --branches             show branch names only
  --versions             show version names only
  --omit-empty           omit empty or unchanged-since items
  --since SNAP-FILE      show revisions after those listed in SNAP-FILE
  --since-limits         limit output to items in the since file
  --snap SNAP-FILE       record the highest revisions shown
  --force                overwrite an existing snap-file

Describe the contents of an archive in outline format.

With LIMIT, look only that part of the archive.

LIMIT may be a fully qualified name and may be an archive name.

tla rbrowse

print an outline describing an archive's contents

Usage: tla rbrowse [options] [[ARCHIVE_NAME/]LIMIT_REGEX]


  -h, --help               Display a help message and exit.
  -H                       Display a verbose help message and exit.
  -V, --version            Display a release identifier string
  --all                    Search all archives
  --since SNAP-FILE        Only show differences since SNAP-FILE
  --snap SNAP-FILE         Snap an archive
  -f, --snap-force         Force snap writing
  -r                       Reverse patch logs
  -s                       Print the summary of matching patches
  -c                       Print the creator of matching patches
  -D                       Print the date of matching patches
  --patch-regex REGEX      Only show revisions that contain [REGEX]
                     (implies -s)
  -A, --archive            Use [archive] instead of default
  --show-sealed            Do not hide sealed branches

an outline of an archive will be printed, showing the categories, branches and revisions of the specified archive if no archive is given then `my-default-archive` is used.

If [LIMIT REGEX] is specified, revisions will only be shown if the category, branch or version matches [LIMIT REGEX]. If --patch-regex [REGEX] is given, then only patchlogs matching [REGEX] will be given

tla categories

list the categories in an archive

Usage: tla categories [options] [archive]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Print a list of the categories present in an archive.

tla branches

list the branches in an archive category

Usage: tla branches [options] [category]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Print a list of the branches within CATEGORY

tla versions

list the versions in an archive branch

Usage: tla versions [options] [branch]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -r, --reverse  sort from newest to oldest

Print a list of versions within an archive branch.

The list is ordinarily sorted from oldest to newest, but the order can be changed with -r (--reverse).

tla revisions

list the revisions in an archive version

Usage: tla revisions [options] [version]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -r, --reverse  sort from newest to oldest
  -f, --full     list fully qualified names
  -s, --summary  print a summary of each patch
  -c, --creator  print the creator of each patch
  -D, --date     print the date of each patch

Print a list of revisions within an archive version.

The list is ordinarily sorted from oldest to newest, but the order can be changed with -r (--reverse).

With optional arguments specifying patches, list only those patches, if they exist. If a listed patch does not exist, exit with status 1. The -r (--reverse) flag has no effect with optional arguments.

tla ancestry

display the ancestory of a revision

Usage: tla ancestry [options] [revision]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first
  -m, --merges   show merges into this development line
  -r, --reverse  list oldest to newest
  -s, --summary  print a summary of each patch
  -c, --creator  print the creator of each patch
  -D, --date     print the date of each patch

Print the ancestry of a revision.

tla ancestry-graph

display the ancestory of a revision

Usage: tla ancestry-graph [options] [revision]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -d, --dir DIR    cd to DIR first
  -m, --merges     show merges into this development line
  -r, --reverse    list oldest to newest
  -i, --immediate  show only the immediate ancestor
  -p, --previous   show the (namespace) previous revision

Print a list describing the ancestry of a revision.

tla cat-archive-log

print the contents of an archived log entry

Usage: tla cat-archive-log [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  --headers      show only log headers

Retrieve and print the log message for the indicated revision from its archive.

tla cacherev

cache a full source tree in an archive

Usage: tla cacherev [options] [revision]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  --cache DIR      cache root for trees with pristines

Cache a full-text copy of the indicated revision in the archive. This can speed up subsequent calls to "tla get" for that and subsequent revisions.

If no revision is specified, but the command is run from within a project tree, cache the latest revision in the default version of that tree.

tla cachedrevs

list cached revisions in an archive

Usage: tla cachedrevs [options] [version]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Report which revisions of VERSION have been cached as whole trees in the archive.

See also "tla cacherev -H".

tla uncacherev

remove a cached full source tree from an archive

Usage: tla uncacherev [options] revision [dir]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Remove the cached form of REVISION from its archive.

If REVISION is not specified, but the command is run from within a project tree, uncache the latest revision in the default version of that tree.

Also see "tla cacherev -H".

tla archive-meta-info

report meta-info from an archive

Usage: tla archive-meta-info [options] item-name


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Print the contents of a meta-info file from an archive. For example,


 tla archive-meta-info name

prints the official name of your default archive.

tla archive-snapshot

update an archive snapshot

Usage: tla archive-snapshot [options] dir [limit]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Update the directory DIR with a "snapshot" of of an archive (or the part of the archive indicated by LIMIT

For each archive snapshotted, DIR will contain a file and subdirectory (where $ARCH is the name of the archive):


 ./$ARCH.added
 ./$ARCH/

Similarly, for each category snapshotted, DIR will contain:


 ./$ARCH/$CAT.added
 ./$ARCH/$CAT/

and so on, recursively, for branches and versions.

For each revision, the snapshot contains:


 ./$ARCH/$CAT/$BRANCH/$VERSION/$REVISION.added

and that file contains a copy of the patch log entry for that revision.

Snapshots can be used in combination with other tools ('make' is suggested) to trigger one-time events in response to new additions to an archive.

tla archive-version

list the archive-version in an archive

Usage: tla archive-version [options]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Print the archive format identifier string of an arch archive.

tla archive-fixup

fix ancillary files in an archive

Usage: tla archive-fixup [options]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

This is a kind of "catch-all" command to fix the non-standard, non-transactional state of an archive. Currently its sole function is to repair .listing files in archives that use them.

PATCH LOG COMMANDS

tla make-log

initialize a new log file entry

Usage: tla make-log [options] [version]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first

Create (if needed) a log entry file in the root of the project tree containing DIR, for the indicated VERSION.

The name of the new log file is printed to standard output.

tla log-versions

list patch log versions in a project tree

Usage: tla log-versions [options]


  -h, --help               Display a help message and exit.
  -H                       Display a verbose help message and exit.
  -V, --version            Display a release identifier string
                     and exit.
  -d, --dir DIR            cd to DIR first
  -a, --archive ARCHIVE    list only logs for ARCHIVE
  -c, --category CATEGORY  list only logs for CATEGORY
  -b, --branch BRANCH      list only logs for BRANCH
  -v, --vsn VERSION        list only logs for VERSION
  -r, --reverse            reverse the sort order

Print the list of versions for which there are patch logs in the project tree containing DIR (or the current directory).

tla add-log-version

add a patch log version to a project tree

Usage: tla add-log-version [options] [archive]/version


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first

Add an initially empty list of patch log for VERSION to the project tree containing DIR (or the current directory).

A project tree patch log is a pre-requisite for checking the directory in on that version, or updating with patches from that version.

Note that versions recorded for a project tree are recorded by fully qualified version names: an archive name plus the name of a version within that archive.

tla remove-log-version

remove a version's patch log from a project tree

Usage: tla remove-log-version [options] [archive]/version


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first

Remove the patch log for VERSION from the project tree containing DIR (or the current directory).

Use this command with caution -- it erases revision history from the project tree!

tla logs

list patch logs for a version in a project tree

Usage: tla logs [options] [[archive]/version ...]


  -h, --help            Display a help message and exit.
  -H                    Display a verbose help message and exit.
  -V, --version         Display a release identifier string
                  and exit.
  -A, --archive         Override `my-default-archive'
  -d, --dir DIR         cd to DIR first
  -r, --reverse         sort from newest to oldest
  -s, --summary         print the summary of each patch
  -c, --creator         print the creator of each patch
  -D, --date            print the date of each patch
  --local-merges        list merges from the same archive
  --foreign-merges      list merges from other archives
  --merges              list all merges
  -f, --full            print full patch level names

Print the list of patches applied to a project tree DIR (or the current directory) from VERSION.

tla cat-log

print the contents of a project tree log entry

Usage: tla cat-log [options] revision-spec


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first

Retrieve and print the patch log for the indicated revision from a project tree.

tla changelog

generate a ChangeLog from a patch log

Usage: tla changelog [options] [[archive]/version]


  -h, --help                  Display a help message and exit.
  -H                          Display a verbose help message and exit.
  -V, --version               Display a release identifier string
                        and exit.
  -A, --archive               Override `my-default-archive'
  -d, --dir DIR               cd to DIR first
  --no-files                  exclude file lists from ChangeLog
  --untagged                  don't implicitly tag the output file
  --new-entry PATCH,FILE      make FILE the first (top) entry
                          for patch level PATCH

Generate a ChangeLog for VERSION from the patch log for DIR.

tla log-for-merge

generate a log entry body for a merge

Usage: tla log-for-merge [options] [[archive]/version]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first
  -r, --reverse  sort from newest to oldest

Generate a log entry body describing a merge into VERSION.

tla merges

report where two branches have been merged

Usage: tla merges [options] INTO [FROM]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first
  -r, --reverse  sort from newest to oldest
  -f, --full     print full patch level names

Print a list of pairs of patch level names:


  %s      %s   INTO-RVN  FROM-RVN

where each pair indicates that at patch level INTO-RVN of INTO, the patch log entry FROM-RVN was added.

FROM may be a branch name, version name, or revision name. If a branch or version name, all merges from that branch or version are reported. If a revision name, only the merge points for that specific revision are reported.

INTO may be a version name or revision name. If a version name, all merge points within that version are printed. If a revision name, all merge points at that revision or earlier are printed.

Output is sorted using patch-level ordering of the first column.

Included patches are listed by full name unless FROM is a revision name. If FROM is a revision, --full causes its full name to be printed.

tla new-merges

list tree patches new to a version

Usage: tla new-merges [options] [[archive]/version]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first
  -r, --reverse  sort from newest to oldest

List all patch log entries in the tree containing DIR that have not already been merged with VERSION.

MULTI-PROJECT CONFIGURATION COMMANDS

tla build-config

instantiate a multi-project config

Usage: tla build-config [options] config


  -h, --help          Display a help message and exit.
  -H                  Display a verbose help message and exit.
  -V, --version       Display a release identifier string
                and exit.
  -d, --dir DIR       cd to DIR first
  --no-pristines      don't create pristine copies
  --link              hardlink files to revision library instead of copying
  --library           ensure revisions are in the revision library
  --sparse            add library entries sparsely (--link, --library)
  -r, --release-id    overwrite ./=RELEASE-ID for this config

Build the named configuration. See also "tla cat-config -H".

tla cat-config

output information about a multi-project config

Usage: tla cat-config [options] config


  -h, --help        Display a help message and exit.
  -H                Display a verbose help message and exit.
  -V, --version     Display a release identifier string
              and exit.
  -d, --dir DIR     cd to DIR first
  -o, --output CFG  write the output as config CFG
  -f, --force       overwrite an exiting config (with --output)
  -s, --snap        Show current patch levels of subtree packages.
  --unescaped       show filenames in unescaped form

Parse and print the indicate config file from a project tree

A config file contains blank lines, comment lines starting with "#", and config specification lines. The config file called $NAME is stored in a project tree as ./configs/$NAME or as ./$NAME.

A config specification line contains a relative path within a project tree, and a specification of the project or revision to store in that location.

For example, the line:


./src/arch   lord [at] emf.net--2003b/arch--devo--1.0

means that, when building the configuration, the latest revision of arch--devo--1.0 should be created within the tree as ./src/arch.

The project specification can be a branch name, version name or the name of a specific revision.

The option --snap says to examine the project tree to find out which revisions of configured project are printed, and generate a new config specification that references those specific revisions. For example, the output for the line shown above might be:


 ./src/arch  lord [at] emf.net--2003b/arch--devo--1.0--patch-21

The option --output causes the output from this command to be recorded as a new configuration file (or to replace an existing file if --force is provided).

COMMANDS FOR BRANCHING AND MERGING

tla tag

create a continuation revision

Usage: tla tag [options] SOURCE-REVISION TAG-VERSION


  -h, --help         Display a help message and exit.
  -H                 Display a verbose help message and exit.
  -V, --version      Display a release identifier string
               and exit.
  -A, --archive      Override `my-default-archive'
  -l, --log FILE     commit with log file FILE
  --no-cacherev      Do not cacherev tag even if different archive
  --seal             create a version-0 revision
  --fix              create a versionfix revision
  -S, --setup        Use `archive-setup' if necessary; implied by default.
  --no-setup         Do not use `archive-setup' even if necessary.

Create the continuation revision TAG-VERSION (branch point or tag) which is equivalent to SOURCE-REVISION (plus a log entry).

If no log entry is provided, a trivial log entry will be created.

tla branch

create a continuation revision

Usage: tla branch [options] [SOURCE] BRANCH


  -h, --help         Display a help message and exit.
  -H                 Display a verbose help message and exit.
  -V, --version      Display a release identifier string
               and exit.
  -A, --archive      Override `my-default-archive'
  -l, --log FILE     commit with log file FILE
  --no-cacherev      Do not cacherev tag even if different archive
  --seal             create a version-0 revision
  --fix              create a versionfix revision

Create the continuation revision BRANCH (branch point or tag) which is equivalent to SOURCE (plus a log entry). If no log entry is provided, a trivial log entry will be created.

If SOURCE is not specified, the current project tree revision is used, and the project tree is switched to BRANCH

tla switch

change the working trees version

Usage: tla switch [options] [package]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string and exit.
  -A, --archive  Override `my-default-archive'.
  -d, --dir DIR  Change to DIR first.
  -q, --quiet    Suppress progress information

change the working trees version to that of package, and make equivalent to revision. Preserves uncommitted changes.

Note: tla automatically switches to the _latest_ revision in the supplied version if no revision explicitly specified.

tla update

update a project tree

Usage: tla update [options] [version/revision]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -d, --dir DIR    Update project tree in DIR (default `.')
  -N, --forward    pass the --forward option to `patch'
  --dest DEST      Instead of modifying the project tree in-place,
             make a copy of it to DEST and apply the result to that
  --unescaped      show filenames in unescaped form

Update a project tree by getting the latest revision of VERSION (or the default version of the project tree) and then applying a patch set of the differences between the project tree and the highest revision with which it is up-to-date.

If the merge involves conflicts, a warning message is printed, and the new project tree will contain ".rej" files.

tla replay

apply revision changesets to a project tree

Usage: tla replay [options] [version/revision...]


  -h, --help          Display a help message and exit.
  -H                  Display a verbose help message and exit.
  -V, --version       Display a release identifier string
                and exit.
  -A, --archive       Override `my-default-archive'
  --list FILE         read a list of patches to apply
  --new               replay only new patches
  --reverse           reverse the named patch
  -N, --forward       pass the --forward option to `patch'
  -d, --dir DIR       Operate on project tree in DIR (default `.')
  --dest DEST         Instead of modifying the project tree in-place,
                make a copy of it to DEST and apply the result to that
  --skip-present      skip patches that contain 1 or more patch logs already in this tree
  --unescaped         show filenames in unescaped form

The result is formed by applying patches in the latest revision of VERSION (or the default version of the project tree), stopping after the first patch that causes conflicts. If multiple VERSIONs are specified, they are applied in turn.

If one or more specific REVISIONs (including patch-levels) is specified instead, only those patch sets, and no others, will be applied.

With the --list option, read a list of patches to apply from FILE (- for standard input). Complete revision names should be listed, one per line. replay will stop at the first patch in the list that causes a merge conflict, leaving behind files with names of the form:


,,replay.conflicts-in --  the name of the patch that caused conflicts


,,replay.remaining    --  the list of patches not yet applied

tla star-merge

merge mutually merged branches

Usage: tla star-merge [options] [FROM]


  -h, --help               Display a help message and exit.
  -H                       Display a verbose help message and exit.
  -V, --version            Display a release identifier string
                     and exit.
  -A, --archive            Override tree archive
  -c, --changes OUTPUT     Generate but don't apply the changeset.
  -r, --reference VERSION  Set reference version (default: project tree version)
  -N, --forward            pass the --forward option to `patch'
  -t, --three-way          Perform a 3-way (diff3-style) merge.
  -d, --dir DIR            Operate on project tree in DIR (default `.')
  --unescaped              show filenames in unescaped form

Merge changes from FROM into the project tree, considering common ancestry from the project tree reference version, REFERENCE (which defaults to the tree version of the project tree). If FROM is not given, it defaults to the tree revision.

The purpose of this command is to merge changes between development lines which may have merged in both directions. It uses merge history to attempt to minimize the spurious conflicts that can arise from `mutual merging'.

FROM indicates a revision (it may be specified as a version name, indicating the latest revision in that version).

TREE is the project tree into which the merge will occur.

Star-merge works by computing the most recent ANCESTOR revision of REFERENCE and FROM and then applying the changeset:


   delta (ANCESTOR, FROM)

to TREE.

The "most recent ancestor" is defined as follows:

MAYBE_ANCESTOR_1 is defined as the highest patch level of FROM in REFERENCE for which both TREE and FROM have a patch log. In other words, it is the latest REFERENCE revision of FROM's version already merged into TREE.

MAYBE_ANCESTOR_2 is defined as the highest patch level in REFERENCE for which both FROM and REFERENCE have a patch log. In other words, it is the latest revision of REFERENCE already merged into FROM.

MAYBE_ANCESTOR_2, if it is not "nil", was merged into FROM at some revision of FROM's version, which we can call LAST_MERGE_INTO_FROM.

If both MAYBE_ANCESTOR_1 or MAYBE_ANCESTOR_2 are nil, star-merge can do nothing.

If just one of MAYBE_ANCESTOR_1 is MAYBE_ANCESTOR_2 is not nil, then that non-nil value is ANCESTOR.

If both MAYBE_ANCESTOR_1 and MAYBE_ANCESTOR_2 are not nil, then LAST_MERGE_INTO_FROM and MAYBE_ANCESTOR_1 are compared (both are revisions in FROM's version). If MAYBE_ANCESTOR_1 is the later revision, then MAYBE_ANCESTOR_1 is ANCESTOR, otherwise, MAYBE_ANCESTOR_2 is ANCESTOR.

tla apply-delta

compute a changeset between any two trees or revisions and apply it to a project tree

Usage: tla apply-delta [options] FROM(REVISION|DIR) TO(REVISION|DIR)


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -N, --forward    pass the --forward option to `patch'
  --cache DIR      specify a cache root for pristine copies
  -d, --dir DIR    Operate on project tree in DIR (default `.')
  -t, --three-way  Perform a 3-way (diff3-style) merge.
  --dest DEST      Instead of modifying the project tree in-place,
             make a copy of it to DEST and apply the result to that
  --unescaped      show filenames in unescaped form

A delta between A and B (both of which may be either a full revision or a project tree) is computed, and then applied to the project tree.

Exit Status Codes:


  No conflict during patch
  Conflicts occurred during patch
  Internal Error

tla missing

print patches missing from a project tree

Usage: tla missing [options] [version]


  -h, --help          Display a help message and exit.
  -H                  Display a verbose help message and exit.
  -V, --version       Display a release identifier string
                and exit.
  -A, --archive       Override `my-default-archive'
  -q, --quiet         produce no ordinary output
  -x, --exit-status   exit non-0 if patches are missing
  -d, --dir DIR       cd to DIR first
  -r, --reverse       sort from newest to oldest
  -s, --summary       display a summary of each missing patch
  -c, --creator       display the creator of each missing patch
  -D, --date          display the date of each missing patch
  -f, --full          print full revision names
  --merges            print a merge list for each missing patch
  --skip-present      skip patches that contain 1 or more patch logs already in this tree

Print a list of patches missing in the project tree containing DIR (or the current directory) for VERSION (or the default version. of the project tree).

The flag --merges means, for each patch, to print the list of patches included in the patch in two columns. For example:


  PATCH-A        PATCH-A
  PATCH-A        PATCH-B
  PATCH-A        PATCH-C

means that PATCH-A includes the changes from PATCH-B and PATCH-C. (Every patch includes at least itself.)

With -x, if there are missing patches, the command exits with status 1, otherwise with status 0.

With -q, produce no output.

WARNING: At this time, some error conditions *also* exit with error status 1, however, in situations where the caller is not concerned with errors, the exit status is still useful.

tla join-branch

add a version as an ancestor of a project tree

Usage: tla join-branch [options] version


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -d, --dir DIR    Operate on project tree in DIR (default `.')
  --dest DEST      Instead of modifying the project tree in-place,
             make a copy of it to DEST and apply the result to that
  --unescaped      show filenames in unescaped form

VERSION--base-0 must be a continuation (e.g. tag). The command replays the changeset for VERSION--base-0 in the project tree, which has the effect of adding the log for the branch (making the tag an ancestor of the resulting tree).

tla sync-tree

unify a project tree's patch-log with a given revision

Usage: tla sync-tree [options] revision


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -d, --dir DIR    Operate on project tree in DIR (default `.')
  --dest DEST      Instead of modifying the project tree in-place,
             make a copy of it to DEST and apply the result to that
  --unescaped      show filenames in unescaped form

The new project tree is formed by getting the REVISION and adding all patch-log entries from REVISION. No actual merging is performed -- only the patch-log is changed.

tla delta

compute a changeset (or diff) between any two trees or revisions

Usage: tla delta [options] (REVISION|TREE)-A (REVISION|TREE)-B [DESTDIR]


  -h, --help          Display a help message and exit.
  -H                  Display a verbose help message and exit.
  -V, --version       Display a release identifier string
                and exit.
  -A, --archive       Override `my-default-archive'
  --cache DIR         specify a cache root for pristine copies
  -n, --no-changeset  do not generate a changeset
  --diffs             print changeset report with diffs (implies -n)
  --unescaped         show filenames in unescaped form

Given (REVISION|TREE)-A and (REVISION|TREE)-B, tla will build a changeset that comprises the changes between REVISION-A and REVISION-B

Example:
  tla delta tla--devo--1.1--patch-6             tla--devo--1.1--patch-8 ,,changes


  Will pull patch-6 and patch-8 from tla--devo--1.1 and compute
  a changeset, which will be saved in a newly created ,,changes
  directory. If you would like a report instead,
  append the --diffs option

LOCAL CACHE COMMANDS

tla changes

report about local changes in a project tree

Usage: tla changes [options] [revision] [-- limit...]


  -h, --help        Display a help message and exit.
  -H                Display a verbose help message and exit.
  -V, --version     Display a release identifier string and exit.
  -A, --archive     Override `my-default-archive'.
  -d, --dir DIR     Change to DIR first.
  -o, --output DIR  Save changeset in DIR (implies --keep).
  -v, --verbose     Verbose changeset report.
  -q, --quiet       Suppress progress information
  --diffs           Include diffs in the output.
  -k, --keep        Don't remove the output directory on termination.
  --link            hardlink unchanged files to revision library
  --unescaped       show filenames in unescaped form

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]


  -h, --help      Display a help message and exit.
  -H              Display a verbose help message and exit.
  -V, --version   Display a release identifier string
            and exit.
  -A, --archive   Override `my-default-archive'
  -N, --new-file  Treat missing file as empty

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 file-find

find given version of file

Usage: tla file-find [options] file [revision]


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -N, --new-file   Print missing file as `/dev/null'
  --unescaped      show filenames in unescaped form

Print location of file corresponding to 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 pristines

list pristine trees in a project tree

Usage: tla pristines [options] [limit]


  -h, --help      Display a help message and exit.
  -H              Display a verbose help message and exit.
  -V, --version   Display a release identifier string
            and exit.
  -d, --dir DIR   cd to DIR first
  -u, --unlocked  return only unlocked pristines
  -l, --locked    return only locked pristines
  -r, --reverse   reverse sort order

Print the list of pristine revisions cached in project tree DIR (or the current directory).

tla lock-pristine

lock (or unlock) a pristine tree

Usage: tla lock-pristine [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first
  -u, --unlock   unlock, rather than lock

Lock the indicated pristine REVISION in the project tree containing DIR (or the current directory). This prevents the revision from being automatically recycled.

tla add-pristine

ensure that a project tree has a particular pristine revision

Usage: tla add-pristine [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -d, --dir DIR  cd to DIR first

Extract REVISION from an archive, creating a pristine copy. Store that pristine copy in the current directory's project tree

tla find-pristine

find and print the path to a pristine revision

Usage: tla find-pristine [options] revision


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  -A, --archive    Override `my-default-archive'
  -d, --dir DIR    cd to DIR first
  -u, --unlocked   return only an unlocked pristine
  -l, --locked     return only a locked pristine
  -t, --tree-only  search this tree only, not siblings
  -s, --silent     exit status only

Print the location of a pristine copy of the indicated revision

REVISION LIBRARY COMMANDS

tla my-revision-library

print or change your revision library path

Usage: tla my-revision-library [options] [dir]


  -h, --help         Display a help message and exit.
  -H                 Display a verbose help message and exit.
  -V, --version      Display a release identifier string
               and exit.
  -e, --errname      specify program name for errors
  -d, --delete       unspecify your revision library
  -s, --silent       suppress reassuring messages
  --search           use the full search path
  --add              use the full add path
  --search-only      use the search-only path
  --add-only         use the add-only path
  --first            prepend to the path if setting (default appends)

With no argument, and without -d, print the path to your revision library.

With an argument, record DIR as the path to your revision library in ~/.arch-params/=revision-library

With the option -d (--delete) and no argument, ensure that you do not have a revision library path set in ~/.arch-params.

If no revision library is set, the program exits with status 1, printing an error message unless the -s (--silent) option is given.

tla library-dir

(alias for my-revision-library)

Usage: tla library-dir [options] [dir]


  -h, --help         Display a help message and exit.
  -H                 Display a verbose help message and exit.
  -V, --version      Display a release identifier string
               and exit.
  -e, --errname      specify program name for errors
  -d, --delete       unspecify your revision library
  -s, --silent       suppress reassuring messages
  --search           use the full search path
  --add              use the full add path
  --search-only      use the search-only path
  --add-only         use the add-only path
  --first            prepend to the path if setting (default appends)

With no argument, and without -d, print the path to your revision library.

With an argument, record DIR as the path to your revision library in ~/.arch-params/=revision-library

With the option -d (--delete) and no argument, ensure that you do not have a revision library path set in ~/.arch-params.

If no revision library is set, the program exits with status 1, printing an error message unless the -s (--silent) option is given.

tla library-config

configure parameters of a revision library

Usage: tla library-config [options] library-dir


  -h, --help        Display a help message and exit.
  -H                Display a verbose help message and exit.
  -V, --version     Display a release identifier string
              and exit.
  --greedy          make the library greedy
  --non-greedy      make the library not greedy
  --sparse          make the library sparse
  --non-sparse      make the library not sparse

Set/show various parameters for a revision library.

tla library-find

find and print the location of a revision in the revision library

Usage: tla library-find [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -e, --errname  specify program name for errors
  -s, --silent   suppress reassuring messages

Find REVISION in your revision library and print its path. If the revision is not present, print an error message (unless --silent is specified) and exit with non-0 status.

tla library-add

add a revision to the revision library

Usage: tla library-add [options] revision


  -h, --help            Display a help message and exit.
  -H                    Display a verbose help message and exit.
  -V, --version         Display a release identifier string
                  and exit.
  -A, --archive         Override `my-default-archive'
  -s, --sparse          Don't fill in gaps in the library.
  --non-sparse          Fill in gaps in the library.
  -L, --library LIB     specify which library to add to
  --for-links PATH      require a lib on the same device as PATH
  --unescaped           show filenames in unescaped form

Add REVISION to your revision library.

This command has no effect and exits with status 0 if the indicated revision is already in the library.

tla library-remove

remove a revision from the revision library

Usage: tla library-remove [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

Remove REVISION from your revision library.

If the revision is not present, print an error message and exit with non-0 status.

tla library-archives

list the archives in your revision library

Usage: tla library-archives [options]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

List all archives with records in the revision library.

tla library-categories

list the categories in your revision library

Usage: tla library-categories [options] [archive]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

List all categories within a given archive in the revision library.

tla library-branches

list the branches in a library category

Usage: tla library-branches [options] [category]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'

List all branches within CATEGORY in the revision library.

tla library-versions

list the versions in a library branch

Usage: tla library-versions [options] [branch]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -r, --reverse  sort from newest to oldest

List all versions within a particular archive/branch with records in the revision library.

tla library-revisions

list the revisions in a library version

Usage: tla library-revisions [options] [version]


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -r, --reverse  sort from newest to oldest
  -f, --full     list fully qualified names
  -s, --summary  print a summary of each patch
  -c, --creator  print the creator of each patch
  -D, --date     print the date of each patch

List all revisions within a particular archive/version with records in the revision library.

tla library-log

output a log message from the revision library

Usage: tla library-log [options] revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  -s, --silent   suppress reassuring messages

Print the log message for REVISION from the library.

tla library-file

find a file in a revision library

Usage: tla library-file [options] file revision


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.
  -A, --archive  Override `my-default-archive'
  --id           interpret FILE as an inventory id
  --this         interpret FILE as a file within a project tree

Find FILE in REVISION in your revision library and print its path. If the revision or file is not present, print an error message and exit with non-0 status.

PUBLISHED REVISIONS COMMANDS

tla grab

grab a published revision

Usage: tla grab [options] location


  -h, --help     Display a help message and exit.
  -H             Display a verbose help message and exit.
  -V, --version  Display a release identifier string
           and exit.

Grabs a published revision from LOCATION.

MISCELLANEOUS SCRIPTING SUPPORT

tla parse-package-name

parse a package name

Usage: tla parse-package-name [options] name


  -h, --help             Display a help message and exit.
  -H                     Display a verbose help message and exit.
  -V, --version          Display a release identifier string
                   and exit.
  -A, --archive          Override `my-default-archive'
  -a, --arch             print the archive name
  --non-arch             print the non-archive part of the name
  -c, --category         print the category name
  -b, --branch           print the branch name
  -p, --package          print the package name
  -v, --vsn              print the version id
  --package-version      print the category--branch--version
  -l, --lvl              print the patch level
  --patch-level          synonym for --lvl

Options -b, -B, -p, -v, and -l cancel each other.

For -b, -v, and -l, just the id string is printed without "--".

For -p, the output is "<basename>--<branch>".

tla valid-package-name

test a package name for validity

Usage: tla valid-package-name [options] name


  -h, --help         Display a help message and exit.
  -H                 Display a verbose help message and exit.
  -V, --version      Display a release identifier string
               and exit.
  -e, --errname      specify program name for errors
  --archive          require and explicit archive
  --no-archive       prohibit and explicit archive
  -c, --category     require a category
  -p, --package      require category, permit branch
  -v, --vsn          require a version number
  -l, --patch-level  require a patch level
  --lvl              synonym for --patch-level
  -t, --tolerant     tolerate more specific names

Exit with status 0 if PACKAGE is a valid package name, status 1 otherwise.

By default, require a basename or basename plus branch label.

Options -v and -l cancel -b and vice versa.

Option -l implies -v.

If an error name is specified (-e or --errname), then invalid names cause an error message on stdout. Otherwise, the exit status is the only output.

By default, validation is strict. For example, -b checks for a valid basename and does not permit a branch label or version number.

With -t, more specific names are permitted. For example, -b will permit a branch name, version number, and patch level.

tla escape

print strings in escaped or unescaped form

Usage: tla escape [--unescaped] string


  -h, --help       Display a help message and exit.
  -H               Display a verbose help message and exit.
  -V, --version    Display a release identifier string
             and exit.
  --unescaped      show filenames in unescaped form

Using Pika escaping rules.

ENVIRONMENT

EDITOR
If $EDITOR is set, use its value as the path of the text editor arch is to run when asking the user for text input. If unset, log messages must be given on the command line using the `-L' parameter or in the file created by `tla make-log'.
HOME
User's home directory, where arch looks for .arch-cache/ and .arch-params/ .

http_proxy HTTP_PROXY
If $http_proxy or $HTTP_PROXY is set, arch used its value as the URL of the proxy to use for WebDAV accesses. $http_proxy has higher priority than $HTTP_PROXY. If unset, no proxy is used.
TMPDIR
If $TMPDIR is set, arch creates temporary files in the given directory. Otherwise, it uses `/tmp'.

FILES

${HOME}/.arch-cache/
Directory where arch caches archive data
${HOME}/.arch-params/
Directory where all the user's settings are stored.
${HOME}/.arch-params/hook
Hook script called after every execution of tla.
${HOME}/.arch-params/signing/
Directory where the commands for signing and checking signatures are stored.

SEE ALSO

http://gnuarch.org/, http://wiki.gnuarch.org/