File: project-trees.html

package info (click to toggle)
arch 1.0pre15-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 20,180 kB
  • ctags: 4,560
  • sloc: ansic: 64,410; sh: 29,168; lisp: 1,896; awk: 1,044; makefile: 484; sed: 26
file content (203 lines) | stat: -rw-r--r-- 4,188 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
<html>
<head>
<title>arch Project Trees</title>
</head>
<body>

<a name="arch_Project_Trees"></a>

<a href="http://www.regexps.com">The Hackerlab at <code>regexps.com</code></a>

<h2 align=center>arch Project Trees</h2>




<small>
<b>up: </b><a href="arch.html#arch">arch</a></br>
<b>next: </b><a href="inventory.html#arch_Project_Inventories">arch Project Inventories</a></br>

<b>prev: </b><a href="in-general.html#arch_Commands_in_General">arch Commands in General</a></br>

</small>
<br>






<p>One of the central organizing concepts of <code>arch</code>
 is the <em>
<a name="index-pt:0"></a>

project
tree
</em>
.  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.
</p><p>In addition to the tree content you create, <code>arch</code>
 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 <code>arch</code>
, you will
ordinarilly want to <em>include</em> the control files: they are useful to
other people.
</p><ul>
<li><a href="project-trees.html#Initializing_a_Project_Tree">Initializing a Project Tree</a></li>
<li><a href="project-trees.html#Finding_the_Root_of_a_Project_Tree">Finding the Root of a Project Tree</a></li>
</ul>

<hr>

<a name="Initializing_a_Project_Tree"></a>



<h3 align=center>Initializing a Project Tree</h3>




<small>
<b>up: </b><a href="project-trees.html#arch_Project_Trees">arch Project Trees</a></br>
<b>next: </b><a href="project-trees.html#Finding_the_Root_of_a_Project_Tree">Finding the Root of a Project Tree</a></br>


</small>
<br>






<p><a name="index-pt:1"></a>

<a name="index-pt:2"></a>

</p><p>To initialize a project tree for the first time, from the root of the
tree, use the command:
</p><pre>
        % larch init-tree

</pre>
<p>For example, here is how I initialized the project tree containing the
source for <code>arch</code>
 itself:
</p><pre>
        % cd ~/wd/arch
        % larch init-tree

</pre>
<p>That will create a subdirectory, at the root of the tree, called
<code>{arch}</code>
.  Most <code>arch</code>
 control files are stored in the tree rooted at
<code>{arch}</code>
: you should never create, remove, or modify files there by
hand.
</p><p>When you have multiple project trees for related projects it is good
practice to make them sibling directories.  This is because <code>arch</code>

sometimes caches information in project trees and those caches can
speed up some operations.  When looking for information in a cache,
<code>arch</code>
 looks not only in the current project tree, but in any sibling
project trees.  For example, while working on <code>arch</code>
, I might have
several copies of <code>arch</code>
, each for working on a different set of
features:
</p><pre>
        % cd ~/wd
        % ls
        arch    arch-branches   arch-inventory   arch-reporting

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










<hr>

<a name="Finding_the_Root_of_a_Project_Tree"></a>



<h3 align=center>Finding the Root of a Project Tree</h3>




<small>
<b>up: </b><a href="project-trees.html#arch_Project_Trees">arch Project Trees</a></br>

<b>prev: </b><a href="project-trees.html#Initializing_a_Project_Tree">Initializing a Project Tree</a></br>

</small>
<br>






<p><a name="index-pt:3"></a>

</p><p>From any directory within a project tree, the command:
</p><pre>
        % larch tree-root

</pre>
<p>prints the full path name of the root of the project tree:
</p><pre>
        % cd ~/wd/arch/src
        % larch tree-root
        /home/lord/wd/arch

</pre>



















<small><i>arch: The arch Revision Control System

</i></small><br>


<a href="http://www.regexps.com">The Hackerlab at <code>regexps.com</code></a>

</body>