Installation: rpms exists. It's in debian. (apt-get install tla). source tarball: download, untar, make build dir, confiugre && make test && make install. Then... Setup your global identity for arch: tla my-id "Robert Collins " create revision library (Optional, is a performance tuning tool). mkdir -p ~/arch/revisionlibrary tla my-revision-library ~/arch/revisionlibrary create somewhere to store your archives, and your mirrors of remote archives. mkdir -p ~/arch/archives create a repository therein. Note that the target dir (second parameter) must not exist. tla make-archive john.doe@example.com--2003 ~/arch/john.doe@example.com--2003 (reusing the archive name ^^here^^ on the directory name allows easy identification later.) create your sources - untar, cvs checkout etc. mkdir -p ~/source/lca-fixit/source-tree cd vim README put random content in this file. vim README.tagged put random content, AND an arch tag line: # Don't edit the next two lines. # arch-tag: :r /proc/sys/kernel/random/uuid # setup the tree to use arch tla init-tree john.doe@example.com--2003/example--mainline--1.0 naming methods - source / binaries / junk classification rules. Sane defaults nowadays. set tagline demonstrate tree-lint and the tagged vs explicit file details. tla tree-lint - note the warning on README but not README.tagged. manually add README to tla: (You can automate this via a small idiom (coming up in a soon to be done whitepaper...) tla add README import the code, creating the branch on the fly. tla import -S checkout the code somewhere else cd .. tla get john.doe@example.com--2003/example--mainline (note the automatic highest version retrieval). change cd source-tree mv README INTRODUCTION tla move README INTRODUCTION tla commit. get the changes cd ../ex.. tla update / tla replay / tla star-merge changelog tla changelog create new archive tla make-archive mary.poppins@example.com--2003 ~/source/lca-fixit/repository-mary create a public mirror: tla make-archive -l -m mary.poppins@example.com--2003 ~/source/lca-fixit/mary-mirror tag tla make-category mary.poppins@example.com--2003/example tla make-branch mary.poppins@example.com--2003/example--newfeature tla make-version mary.poppins@example.com--2003/example--newfeature--1.0 tla tag john.doe@example.com--2003/example--mainline--1.0 mary.poppins@example.com--2003/example--newfeature--1.0 get tla get mary.poppins@example.com--2003/example--newfeature commit mv README.tagged GettingStarted tla commit -s "get rid of README.tagged. GettingStarted is a better name" and push to the mirror: tla push-mirror mary.poppins@example.com--2003 merge back. cd ../source-tree/ tla star-merge mary.poppins@example.com--2003/example--newfeature--1.0 tla what-changed tla commit -s "Merged new feature from Mary" talk about mirrors Squid - grab config. tla get robertc@squid-cache.org--squid/dists--devo cd dist.. tla buildcfg squid-cache.org/deb/devel-3.0 Note: the debian directory is 'mixed in' - completely separate logic.