The Hackerlab at regexps.com

arch Project Trees

up: arch
next: arch Project Inventories
prev: arch Commands in General

One of the central organizing concepts of arch is the project tree . For the most part, a project tree is an ordinary tree of files, directories and symbolic links -- all files that you create and maintain as part of your project.

In addition to the tree content you create, arch itself maintains some control files in a project tree. You should regard these extra control files as part of your project's content. For example, if you distribute source for a program managed by arch , you will ordinarilly want to include the control files: they are useful to other people.


Initializing a Project Tree

up: arch Project Trees
next: Finding the Root of a Project Tree

To initialize a project tree for the first time, from the root of the tree, use the command:

        % larch init-tree

For example, here is how I initialized the project tree containing the source for arch itself:

        % cd ~/wd/arch
        % larch init-tree

That will create a subdirectory, at the root of the tree, called {arch} . Most arch control files are stored in the tree rooted at {arch} : you should never create, remove, or modify files there by hand.

When you have multiple project trees for related projects it is good practice to make them sibling directories. This is because arch sometimes caches information in project trees and those caches can speed up some operations. When looking for information in a cache, arch looks not only in the current project tree, but in any sibling project trees. For example, while working on arch , I might have several copies of arch , each for working on a different set of features:

        % cd ~/wd
        % ls
        arch    arch-branches   arch-inventory   arch-reporting

In this manual, ~/wd always refers to a "directory of project trees". (The convention means the same thing as, but is less cumbersome than ${PROJECT_TREES} -- there is no requirement that your directory of project trees be called ~/wd , or that you only have one such directory.)


Finding the Root of a Project Tree

up: arch Project Trees
prev: Initializing a Project Tree

From any directory within a project tree, the command:

        % larch tree-root

prints the full path name of the root of the project tree:

        % cd ~/wd/arch/src
        % larch tree-root
        /home/lord/wd/arch

arch: The arch Revision Control System
The Hackerlab at regexps.com