1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
---|
2 | |
---|
3 | <html> |
---|
4 | <head> |
---|
5 | <title>FCM System User Guide: FCM Command Reference</title> |
---|
6 | <meta name="author" content="FCM development team"> |
---|
7 | <meta name="descriptions" content="User Guide - FCM Command Reference"> |
---|
8 | <meta name="keywords" content="FCM, user guide, command reference"> |
---|
9 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
---|
10 | <link rel="stylesheet" type="text/css" href="style.css"> |
---|
11 | </head> |
---|
12 | |
---|
13 | <body> |
---|
14 | <address> |
---|
15 | <a href="index.html">FCM System User Guide</a> > FCM Command Reference |
---|
16 | </address> |
---|
17 | |
---|
18 | <h1>FCM Command Reference</h1> |
---|
19 | |
---|
20 | <h2><a name="fcm_config">fcm Configuration File</a></h2> |
---|
21 | |
---|
22 | <p>The FCM system uses simple line based text files to store configuration |
---|
23 | settings. All configuration files used by FCM are based on the same |
---|
24 | principles:</p> |
---|
25 | |
---|
26 | <ul> |
---|
27 | <li>All configurations are stored in plain text files.</li> |
---|
28 | |
---|
29 | <li>A line in a file may contain a configuration setting or a comment.</li> |
---|
30 | |
---|
31 | <li>Blank lines are ignored.</li> |
---|
32 | |
---|
33 | <li>A line that begins with a <tt>#</tt> is a <em>comment</em> line.</li> |
---|
34 | |
---|
35 | <li>Each configuration line has a <em>label</em>, a <em>value</em> and |
---|
36 | optionally a trailing <em>comment</em>. For example: |
---|
37 | <pre> |
---|
38 | my::label this is the value # some comment |
---|
39 | </pre> |
---|
40 | </li> |
---|
41 | |
---|
42 | <li>A <em>label</em> in a configuration line may contain any non-space |
---|
43 | character. A space character marks the end of the <em>label</em>.</li> |
---|
44 | |
---|
45 | <li>Words or fields in the <em>label</em> are normally delimited by the |
---|
46 | double colon (<tt>::</tt>).</li> |
---|
47 | |
---|
48 | <li>The first non-space character after the <em>label</em> is the beginning |
---|
49 | of the <em>value</em>. The <em>value</em> may contain space characters. The |
---|
50 | newline character or the character sequence <tt>" # "</tt> marks the end of |
---|
51 | the <em>value</em>.</li> |
---|
52 | |
---|
53 | <li>The first non-space character after the character sequence <tt>" # |
---|
54 | "</tt> at the end of the <em>value</em> is the <em>comment</em>. The |
---|
55 | <em>comment</em> is normally ignored by the parser of the configuration |
---|
56 | file.</li> |
---|
57 | |
---|
58 | <li>If the last character of the <em>value</em> is a backslash "\", the |
---|
59 | next non-comment line will be the continuation of the current line. Please |
---|
60 | note that trailing spaces before the continuation mark are preserved, and |
---|
61 | leading spaces are removed from the beginning of a continuation. If you |
---|
62 | want to have leading spaces in a continued line, start the line with a |
---|
63 | backslash "\" before the leading spaces. It is also worth bearing in mind |
---|
64 | that the backslash "\" character is only significant if it appears at the |
---|
65 | end of a value or the beginning of a continuation line. It is not a special |
---|
66 | character if it appears elsewhere. For example: |
---|
67 | <pre> |
---|
68 | foo bar\ |
---|
69 | egg\ |
---|
70 | ham |
---|
71 | # will become: |
---|
72 | foo bareggham |
---|
73 | |
---|
74 | foo bar \ |
---|
75 | egg \ |
---|
76 | ham |
---|
77 | # will become: |
---|
78 | foo bar egg ham |
---|
79 | |
---|
80 | foo bar\ |
---|
81 | \ egg\ |
---|
82 | \ ham |
---|
83 | # will become: |
---|
84 | foo bar egg ham |
---|
85 | |
---|
86 | foo bar\ |
---|
87 | \ egg\ham |
---|
88 | # will become: |
---|
89 | foo bar egg\ham |
---|
90 | </pre> |
---|
91 | </li> |
---|
92 | </ul> |
---|
93 | |
---|
94 | <p>The FCM central and user configuration files can be used to add or modify |
---|
95 | some of the default settings of FCM. When the <em>fcm</em> command is |
---|
96 | invoked, it normally attempts to search for a central configuration file at |
---|
97 | <tt>$BINDIR/../etc/fcm.cfg</tt> and then <tt>$BINDIR/fcm.cfg</tt>, where |
---|
98 | <tt>$BINDIR</tt> is the container directory of the <em>fcm</em> command. If a |
---|
99 | central configuration file can be located, the settings in the file will |
---|
100 | replace the pre-defined ones. After searching/reading the central |
---|
101 | configuration file, the system will attempt to search for a user |
---|
102 | configuration file located at <tt>$HOME/.fcm</tt> of the current user. If |
---|
103 | such a file can be found, its settings will replace the pre-defined ones as |
---|
104 | well as those defined in the central configuration file.</p> |
---|
105 | |
---|
106 | <p>For information on the valid entries in the central and user configuration |
---|
107 | files, please refer to the <a href="annex_fcm_cfg.html">Annex: Declarations |
---|
108 | in FCM central/user configuration file</a>.</p> |
---|
109 | |
---|
110 | <h2><a name="fcm_bld">fcm build</a></h2> |
---|
111 | |
---|
112 | <h4>Usage</h4> |
---|
113 | |
---|
114 | <p>fcm build [OPTIONS...] [CFGFILE]</p> |
---|
115 | |
---|
116 | <h4>Description</h4> |
---|
117 | |
---|
118 | <p><tt>fcm build</tt> invokes the FCM build system.</p> |
---|
119 | |
---|
120 | <p>The path to a valid build configuration file <tt>CFGFILE</tt> may be |
---|
121 | provided as either a URL or a pathname. Otherwise, the build system |
---|
122 | searches the default locations for a build configuration file.</p> |
---|
123 | |
---|
124 | <p>If no option is specified, the system uses the "<tt>-s 5 -t all -j 1 -v |
---|
125 | 1</tt>" by default.</p> |
---|
126 | |
---|
127 | <ul> |
---|
128 | <li>The "<tt>-a [--archive]</tt>" option can be specified to switch on the |
---|
129 | archive mode. In archive mode, sub-directories produced by the build will |
---|
130 | be archived in <em>tar</em> format at the end of a successful build. This |
---|
131 | option should not be used if the current build is intended to be re-used as |
---|
132 | a pre-compiled build.</li> |
---|
133 | |
---|
134 | <li>If the "<tt>-f [--full]</tt>" option is specified, the build system |
---|
135 | will attempt to perform a full/clean build by removing any previous build |
---|
136 | files. Otherwise, the build system will attempt to perform an incremental |
---|
137 | build where appropriate.</li> |
---|
138 | |
---|
139 | <li>When the build system is invoked, it sets a lock file in the build root |
---|
140 | directory to prevent other extracts/builds taking place in the same |
---|
141 | location. The lock file is normally removed when the build system exits. |
---|
142 | (However, a lock file may be left behind if the user interrupts the command, |
---|
143 | e.g. by typing <tt>Ctrl-C</tt>.) You can bypass the check for lock files by |
---|
144 | using the "<tt>--ignore-lock</tt>" option.</li> |
---|
145 | |
---|
146 | <li>The "<tt>-j [--jobs] arg</tt>" option can be used to specify the number |
---|
147 | of parallel jobs that can be handled by the <em>make</em> command. The |
---|
148 | argument <tt>arg</tt> must be a natural integer to represent the number of |
---|
149 | jobs. If not specified, the default is to perform serial <em>make</em> |
---|
150 | (i.e. 1 job).</li> |
---|
151 | |
---|
152 | <li>The "<tt>-s [--stage] arg</tt>" option can be used to limit the actions |
---|
153 | performed by the build system, up to a named stage determined by the |
---|
154 | argument <tt>arg</tt>. If not specified, the default is 5. The stages are: |
---|
155 | |
---|
156 | <ul> |
---|
157 | <li>"1", "s" or "setup": stage 1, read configuration and set up the |
---|
158 | build</li> |
---|
159 | |
---|
160 | <li>"2", "pp" or "pre_process": stage 2, perform pre-processing for |
---|
161 | source files that require pre-processing</li> |
---|
162 | |
---|
163 | <li>"3", "gd" or "generate_dependency": stage 3, scan source files for |
---|
164 | dependency information and generate <em>make</em> rules for them</li> |
---|
165 | |
---|
166 | <li>"4", "gi" or "generate_interface": stage 4, generate interface |
---|
167 | files for Fortran 9X source files</li> |
---|
168 | |
---|
169 | <li>"5", "m", "make": stage 5, invoke the <em>make</em> command to |
---|
170 | build the project</li> |
---|
171 | </ul> |
---|
172 | </li> |
---|
173 | |
---|
174 | <li>The "<tt>-t [--targets] arg</tt>" can be used to specify the targets to |
---|
175 | be built. The argument <tt>arg</tt> must be a colon-separated list of valid |
---|
176 | targets. If not specified, the default target to be built is the "all" |
---|
177 | target.</li> |
---|
178 | |
---|
179 | <li>The "<tt>-v [--verbose] arg</tt>" option can be specified to alter the |
---|
180 | level of diagnostic output. The argument <tt>arg</tt> to this option must |
---|
181 | be an integer greater than or equal to 0. The verbose level increases with |
---|
182 | this number. If not specified, the default verbose level is 1.</li> |
---|
183 | </ul> |
---|
184 | |
---|
185 | <p>For further details, please refer to the chapter on <a href= |
---|
186 | "build.html">The Build System</a>.</p> |
---|
187 | |
---|
188 | <h4>Alternate Names</h4> |
---|
189 | |
---|
190 | <p>bld</p> |
---|
191 | |
---|
192 | <h2><a name="fcm_ext">fcm extract</a></h2> |
---|
193 | |
---|
194 | <h4>Usage</h4> |
---|
195 | |
---|
196 | <p>fcm extract [OPTIONS...] [CFGFILE]</p> |
---|
197 | |
---|
198 | <h4>Description</h4> |
---|
199 | |
---|
200 | <p><tt>fcm extract</tt> invokes the FCM extract system.</p> |
---|
201 | |
---|
202 | <p>The path to a valid extract configuration file <tt>CFGFILE</tt> may be |
---|
203 | provided as either a URL or a pathname. Otherwise, the extract system |
---|
204 | searches the default locations for an extract configuration file.</p> |
---|
205 | |
---|
206 | <ul> |
---|
207 | <li>If the "<tt>-f [--full]</tt>" option is specified, the extract system |
---|
208 | will attempt to perform a full/clean extraction by removing any previous |
---|
209 | extracted files. Otherwise, the extract system will attempt to perform an |
---|
210 | incremental extraction where appropriate.</li> |
---|
211 | |
---|
212 | <li>When the extract system is invoked, it sets a lock file in the extract |
---|
213 | destination root directory to prevent other extracts/builds taking place in |
---|
214 | the same location. The lock file is normally removed when the extract system |
---|
215 | exits. (However, a lock file may be left behind if the user interrupts the |
---|
216 | command, e.g. by typing <tt>Ctrl-C</tt>.) You can bypass the check for lock |
---|
217 | files by using the "<tt>--ignore-lock</tt>" option.</li> |
---|
218 | |
---|
219 | <li>The "<tt>-v [--verbose] arg</tt>" option can be specified to alter the |
---|
220 | level of diagnostic output. The argument <tt>arg</tt> to this option must |
---|
221 | be an integer greater than or equal to 0. The verbose level increases with |
---|
222 | this number. If not specified, the default verbose level is 1.</li> |
---|
223 | </ul> |
---|
224 | |
---|
225 | <p>For further details, please refer to the chapter on <a href= |
---|
226 | "extract.html">The Extract System</a>.</p> |
---|
227 | |
---|
228 | <h4>Alternate Names</h4> |
---|
229 | |
---|
230 | <p>ext</p> |
---|
231 | |
---|
232 | <h2><a name="fcm_cmp-ext-cfg">fcm cmp-ext-cfg</a></h2> |
---|
233 | |
---|
234 | <h4>Usage</h4> |
---|
235 | |
---|
236 | <p>fcm cmp-ext-cfg [--verbose (-v)] [--wiki (-w) arg] CFG1 CFG2</p> |
---|
237 | |
---|
238 | <h4>Description</h4> |
---|
239 | |
---|
240 | <p><tt>fcm cmp-ext-cfg</tt> compares the extract configurations of two similar |
---|
241 | extract configuration files CFG1 and CFG2. It reports repository branches and |
---|
242 | source directories that are declared in one file but not another. If a source |
---|
243 | directory is declared in both files, it compares their versions. If they |
---|
244 | differ, it uses <tt>svn log</tt> to obtain a list of revision numbers at which |
---|
245 | changes are made to the source directory. It then reports, for each declared |
---|
246 | repository branch, the revisions at which changes occur in their declared |
---|
247 | source directories.</p> |
---|
248 | |
---|
249 | <p>The list of revisions for each declared repository branch is normally |
---|
250 | printed out as a simple list in plain text.</p> |
---|
251 | |
---|
252 | <ul> |
---|
253 | <li>You can use the <tt>--verbose</tt> option to print also the log of each |
---|
254 | revision.</li> |
---|
255 | |
---|
256 | <li>Alternatively, you can use the <tt>--wiki</tt> option to change that |
---|
257 | into an tabular output suitable for inserting into a Trac wiki page. The |
---|
258 | <tt>--wiki</tt> option must be specified with an argument, which must be the |
---|
259 | Subversion URL or FCM URL keyword of a FCM project associated with the |
---|
260 | intended Trac system. The URL allows the command to work out the correct |
---|
261 | wiki syntax to use.</li> |
---|
262 | </ul> |
---|
263 | |
---|
264 | <h2><a name="fcm_gui">fcm gui</a></h2> |
---|
265 | |
---|
266 | <h4>Usage</h4> |
---|
267 | |
---|
268 | <p>fcm gui [DIR]</p> |
---|
269 | |
---|
270 | <h4>Description</h4> |
---|
271 | |
---|
272 | <p><tt>fcm gui</tt> starts up the FCM GUI. If DIR is specified then this is |
---|
273 | used as the working directory.</p> |
---|
274 | |
---|
275 | <p>For further details, please refer to the section <a href= |
---|
276 | "code_management.html#svn_gui">Using the GUI</a>.</p> |
---|
277 | |
---|
278 | <h2><a name="fcm_svn">fcm Subversion Subcommands</a></h2> |
---|
279 | |
---|
280 | <p>This section describes all of the Subversion related commands supported by |
---|
281 | <tt>fcm</tt>.</p> |
---|
282 | |
---|
283 | <ul> |
---|
284 | <li>In some cases <tt>fcm</tt> simply passes the command directly on to |
---|
285 | <tt>svn</tt> (after expanding any URL keywords). These commands are |
---|
286 | listed in the <a href="#fcm_svn_other">Other Subversion Commands</a> |
---|
287 | section.</li> |
---|
288 | |
---|
289 | <li>Where <tt>fcm</tt> adds functionality these commands are discussed |
---|
290 | individually.</li> |
---|
291 | |
---|
292 | <li>In all cases, all the command abbreviations supported by <tt>svn</tt> |
---|
293 | work with <tt>fcm</tt>.</li> |
---|
294 | </ul> |
---|
295 | |
---|
296 | <h3><a name="fcm_svn_add">fcm add</a></h3> |
---|
297 | |
---|
298 | <h4>Usage</h4> |
---|
299 | |
---|
300 | <p>fcm add --check (-c)</p> |
---|
301 | |
---|
302 | <p>fcm add <any valid <em>svn add</em> options></p> |
---|
303 | |
---|
304 | <h4>Description</h4> |
---|
305 | |
---|
306 | <p><tt>fcm add</tt> supports all of the switches and arguments supported by |
---|
307 | <tt>svn add</tt> (refer to the <a href= |
---|
308 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.add.html">Subversion |
---|
309 | book</a> for details).</p> |
---|
310 | |
---|
311 | <p>In addition, <tt>fcm add</tt> supports a <tt>--check</tt> switch (no |
---|
312 | other switches or arguments). When this is specified then <tt>fcm</tt> |
---|
313 | checks for any files which are not currently under version control (i.e. those |
---|
314 | marked with a "?" by <tt>svn status</tt>) and prompts to see if you wish to |
---|
315 | schedule them for addition at the next commit (using <tt>svn add</tt>).</p> |
---|
316 | |
---|
317 | <p>For further details refer to the section <a href= |
---|
318 | "code_management.html#svn_basic_check">Adding and Removing |
---|
319 | Files</a>.</p> |
---|
320 | |
---|
321 | <h3><a name="fcm_svn_br">fcm branch</a></h3> |
---|
322 | |
---|
323 | <h4>Usage</h4> |
---|
324 | |
---|
325 | <p>fcm branch [--info (-i)] [--verbose (-v)] [--show-children] |
---|
326 | [--show-siblings] [--show-other] [--show-all (-a)] [TARGET]</p> |
---|
327 | |
---|
328 | <p>fcm branch --delete (-d) [--verbose (-v)] [--show-children] |
---|
329 | [--show-siblings] [--show-other] [--show-all (-a)] [--svn-non-interactive] |
---|
330 | [--non-interactive] [--password arg] [TARGET]</p> |
---|
331 | |
---|
332 | <p>fcm branch --create (-c) --name (-n) arg [--type (-t) arg] [--rev-flag arg] |
---|
333 | [--ticket (-k) arg] [--branch-of-branch] [--svn-non-interactive] |
---|
334 | [--non-interactive] [--password arg] [--revision arg] [TARGET]</p> |
---|
335 | |
---|
336 | <p>fcm branch --list (-l) [--user (-u) arg] [--verbose (-v)] [--revision arg] |
---|
337 | [TARGET]</p> |
---|
338 | |
---|
339 | <h4>Description</h4> |
---|
340 | |
---|
341 | <p>If TARGET is specified, it must either be a URL or a path to a local |
---|
342 | working copy. Otherwise, the current working directory must be a working copy. |
---|
343 | For <tt>--info</tt> and <tt>--delete</tt>, the specified URL or that of the |
---|
344 | working copy must be a valid branch (including the trunk) in a standard FCM |
---|
345 | project. For <tt>--create</tt> and <tt>--list</tt>, it must be a valid URL of |
---|
346 | a standard FCM project.</p> |
---|
347 | |
---|
348 | <p><tt>fcm branch --info</tt> displays information about a branch.</p> |
---|
349 | |
---|
350 | <ul> |
---|
351 | <li>This is the default if no options are specified (e.g. if you just |
---|
352 | issue the command <tt>fcm br</tt>).</li> |
---|
353 | |
---|
354 | <li>This command performs the following actions: |
---|
355 | |
---|
356 | <ul> |
---|
357 | <li>It reports the basic information of the branch URL, as returned |
---|
358 | by "svn info".</li> |
---|
359 | |
---|
360 | <li>If <tt>--verbose</tt> is set, it also prints the log message of |
---|
361 | the last change revision.</li> |
---|
362 | |
---|
363 | <li>If the URL is not the trunk: |
---|
364 | |
---|
365 | <ul> |
---|
366 | <li>It reports the branch creation information, including the |
---|
367 | revision, author and date. It also reports the parent URL@REV of the |
---|
368 | branch. If <tt>--verbose</tt> is set, it prints the log message of |
---|
369 | the branch creation revision.</li> |
---|
370 | |
---|
371 | <li>If the branch does not exist at the HEAD, it reports the |
---|
372 | revision at which it is deleted.</li> |
---|
373 | |
---|
374 | <li>It reports the last merges into and from the parent branch. If |
---|
375 | <tt>--verbose</tt> is set, it also prints the log message of |
---|
376 | these merges.</li> |
---|
377 | |
---|
378 | <li>It reports the revisions available for merging into and from the |
---|
379 | parent branch. If <tt>--verbose</tt> is set, it also prints the log |
---|
380 | message of these revisions.</li> |
---|
381 | </ul> |
---|
382 | </li> |
---|
383 | |
---|
384 | <li>If <tt>--show-children</tt> is specified, it lists the current |
---|
385 | children of the branch and their create revisions. Where appropriate, it |
---|
386 | reports the revision of each child, which is last merged from/into the |
---|
387 | current branch. It also reports the available merges from/into each |
---|
388 | child into the current branch.</li> |
---|
389 | |
---|
390 | <li>If <tt>--show-siblings</tt> is specified, it reports recent merges |
---|
391 | from/into sibling branches. It also reports the available merges |
---|
392 | from/into sibling branches where recent merges are detected. If |
---|
393 | <tt>--verbose</tt> is set, it also prints the log message of these |
---|
394 | merges.</li> |
---|
395 | |
---|
396 | <li>If <tt>--show-other</tt> is specified, it reports all custom and |
---|
397 | reverse merges into the current branch.</li> |
---|
398 | |
---|
399 | <li>You can turn on <tt>--show-children</tt>, <tt>--show-siblings</tt> |
---|
400 | and <tt>--show-other</tt> simultaneously by specifying |
---|
401 | <tt>--show-all</tt>.</li> |
---|
402 | </ul> |
---|
403 | </li> |
---|
404 | |
---|
405 | <li>For further details refer to the section <a href= |
---|
406 | "code_management.html#svn_branching_info">Getting Information About |
---|
407 | Branches</a>.</li> |
---|
408 | </ul> |
---|
409 | |
---|
410 | <p><tt>fcm branch --delete</tt> deletes a branch.</p> |
---|
411 | |
---|
412 | <ul> |
---|
413 | <li>This command performs the following actions: |
---|
414 | |
---|
415 | <ul> |
---|
416 | <li>Firstly, it provides exactly the same output as <tt>fcm branch |
---|
417 | --info</tt>.</li> |
---|
418 | |
---|
419 | <li>If you do not specify the <tt>--non-interactive</tt> option, it starts an |
---|
420 | editor (using a similar convention as <a href= "#fcm_svn_ci">commit</a>) |
---|
421 | to allow you to add further comment to the commit log message. A |
---|
422 | standard commit log template is provided for you below the line that |
---|
423 | says "--This line will be ignored and those below will be inserted |
---|
424 | automatically--". If you need to add any extra message to the log, |
---|
425 | please do so <strong>above</strong> this line. When you exit the editor, |
---|
426 | the command will report the commit log before prompting for confirmation |
---|
427 | that you wish to proceed with deleting the branch (it aborts if |
---|
428 | not).</li> |
---|
429 | </ul> |
---|
430 | </li> |
---|
431 | |
---|
432 | <li>If you specify the <tt>--non-interactive</tt> option, the command will not prompt |
---|
433 | you for anything. (The <tt>--svn-non-interactive</tt> option is set automatically |
---|
434 | when you specify <tt>--non-interactive</tt>.)</li> |
---|
435 | |
---|
436 | <li>Subversion may prompt you for authentication if it is the first time |
---|
437 | you access the repository. The command fails if the authentication |
---|
438 | fails. If you specify the <tt>--svn-non-interactive</tt> option, Subversion will not |
---|
439 | prompt you for authentication. In such case, the command will simply |
---|
440 | fail if authentication is required. You can use the <tt>--password</tt> option to |
---|
441 | specify a password. Please note that the <tt>--svn-non-interactive</tt> option is |
---|
442 | always specified if you are running <tt>branch --delete</tt> from the FCM GUI. |
---|
443 | If authentication is required, you should specify your password using |
---|
444 | the <tt>--password</tt> option in "Other options".</li> |
---|
445 | |
---|
446 | <li>For further details refer to the section <a href= |
---|
447 | "code_management.html#svn_branching_delete">Deleting Branches</a>.</li> |
---|
448 | </ul> |
---|
449 | |
---|
450 | <p><tt>fcm branch --create</tt> creates a new branch.</p> |
---|
451 | |
---|
452 | <ul> |
---|
453 | <li>You have to choose a name for your branch. This must be specified |
---|
454 | as the argument of the <tt>--name (-n)</tt> option. The name of the branch must |
---|
455 | contain only word characters, i.e. [A-Za-z0-9_].</li> |
---|
456 | |
---|
457 | <li>You can specify the type of branch you are creating using the |
---|
458 | <tt>--type (-t)</tt> option. The argument to the option must be one of the |
---|
459 | following: |
---|
460 | |
---|
461 | <ul> |
---|
462 | <li>DEV::USER - a development branch for the current user (e.g. |
---|
463 | branches/dev/<user_id>/<branch_name>)</li> |
---|
464 | |
---|
465 | <li>DEV::SHARE - a shared development branch (e.g. |
---|
466 | branches/dev/Share/<branch_name>)</li> |
---|
467 | |
---|
468 | <li>DEV - same as DEV::USER</li> |
---|
469 | |
---|
470 | <li>TEST::USER - a test branch for the current user (e.g. |
---|
471 | branches/test/<user_id>/<branch_name>)</li> |
---|
472 | |
---|
473 | <li>TEST::SHARE - a shared test branch (e.g. |
---|
474 | branches/test/Share/<branch_name>)</li> |
---|
475 | |
---|
476 | <li>TEST - same as TEST::USER</li> |
---|
477 | |
---|
478 | <li>PKG::USER - a package branch for the current user (e.g. |
---|
479 | branches/pkg/<user_id>/<branch_name>)</li> |
---|
480 | |
---|
481 | <li>PKG::SHARE - a shared package branch (e.g. |
---|
482 | branches/pkg/Share/<branch_name>)</li> |
---|
483 | |
---|
484 | <li>PKG::CONFIG - a configuration branch (e.g. |
---|
485 | branches/pkg/Config/<branch_name>)</li> |
---|
486 | |
---|
487 | <li>PKG::REL - a release branch (e.g. |
---|
488 | branches/pkg/Rel/<branch_name>)</li> |
---|
489 | |
---|
490 | <li>PKG - same as PKG::USER</li> |
---|
491 | |
---|
492 | <li>CONFIG - same as PKG::CONFIG</li> |
---|
493 | |
---|
494 | <li>REL - same as PKG::REL</li> |
---|
495 | |
---|
496 | <li>SHARE - same as DEV::SHARE</li> |
---|
497 | |
---|
498 | <li>USER - same as DEV::USER</li> |
---|
499 | </ul> |
---|
500 | |
---|
501 | <p>If the <tt>--type</tt> option is not specified, it defaults to |
---|
502 | DEV::USER.</p> |
---|
503 | </li> |
---|
504 | |
---|
505 | <li>Your branch name will normally be prefixed by the revision number |
---|
506 | from which it is branched. (E.g. if the branch name is "my_branch" and |
---|
507 | you are branching from revision 123 of the trunk, the final name will |
---|
508 | be "r123_my_branch".) If this revision number is associated with a |
---|
509 | revision keyword, the keyword will be used in place of the revision |
---|
510 | number. (E.g. if revision 123 is associated with the keyword vn6.1, |
---|
511 | "r123_my_branch" will become "vn6.1_my_branch".) You can alter this |
---|
512 | behaviour using the argument to the <tt>--rev-flag</tt> option. If NORMAL is |
---|
513 | specified, it uses the default behaviour. If NUMBER is specified, it |
---|
514 | will always use the revision number as the prefix, regardless of |
---|
515 | whether the revision number is defined as a keyword or not. If NONE is |
---|
516 | specified, it will not add a prefix to your branch name.</li> |
---|
517 | |
---|
518 | <li>The command will normally create your branch from the last changed |
---|
519 | revision of the trunk of the specified project. |
---|
520 | |
---|
521 | <ul> |
---|
522 | <li>You can use the <tt>--revision</tt> option to specify an earlier revision of |
---|
523 | the source.</li> |
---|
524 | |
---|
525 | <li>If the source URL is a valid URL of a branch in a standard FCM |
---|
526 | project, you can use the <tt>--branch-of-branch</tt> option to create |
---|
527 | a branch of the source branch.</li> |
---|
528 | </ul> |
---|
529 | </li> |
---|
530 | |
---|
531 | <li>The <tt>--ticket</tt> option can be used to specify one or more Trac ticket |
---|
532 | numbers, which the branch relates to. Multiple ticket numbers can be set |
---|
533 | by specifying this option multiple times, or by using a comma-separated |
---|
534 | list of ticket numbers as the argument to the option. If set, the line |
---|
535 | "Relates to ticket #<number>[, #<number>...]" will be added |
---|
536 | to the template commit log.</li> |
---|
537 | |
---|
538 | <li>If you specify the <tt>--non-interactive</tt> option, the command will not prompt |
---|
539 | you for anything. (The <tt>--svn-non-interactive</tt> option is set automatically |
---|
540 | when you specify <tt>--non-interactive</tt>.)</li> |
---|
541 | |
---|
542 | <li>Subversion may prompt you for authentication if it is the first time |
---|
543 | you access the repository. The command fails if the authentication |
---|
544 | fails. If you specify the <tt>--svn-non-interactive</tt> option, Subversion will not |
---|
545 | prompt you for authentication. In such case, the command will simply |
---|
546 | fail if authentication is required. You can use the <tt>--password</tt> option to |
---|
547 | specify a password. Please note that the <tt>--svn-non-interactive</tt> option is |
---|
548 | always specified if you are running <tt>branch --create</tt> from the FCM GUI. |
---|
549 | If authentication is required, you should specify your password using |
---|
550 | the <tt>--password</tt> option in "Other options".</li> |
---|
551 | |
---|
552 | <li>This command performs the following actions: |
---|
553 | |
---|
554 | <ul> |
---|
555 | <li>It determines the last changed revision of the trunk/source branch |
---|
556 | at the HEAD (or the specified) revision.</li> |
---|
557 | |
---|
558 | <li>It constructs the branch name from the option you have |
---|
559 | specified and reports it.</li> |
---|
560 | |
---|
561 | <li>It checks that the chosen branch name does not currently exist. |
---|
562 | If so, the command aborts with an error.</li> |
---|
563 | |
---|
564 | <li>If you do not specify the <tt>--non-interactive</tt> option, it starts an |
---|
565 | editor (using a similar convention as <a href= "#fcm_svn_ci">commit</a>) |
---|
566 | to allow you to add further comment to the commit log message. A |
---|
567 | standard commit log template is provided for you below the line that |
---|
568 | says "--This line will be ignored and those below will be inserted |
---|
569 | automatically--". If you need to add any extra message to the log, |
---|
570 | please do so <strong>above</strong> this line. When you exit the editor, |
---|
571 | the command will report the commit log before prompting for confirmation |
---|
572 | that you wish to proceed (it aborts if not).</li> |
---|
573 | |
---|
574 | <li>It uses <tt>svn mkdir</tt> to create any sub-directories |
---|
575 | required for the copy to succeed.</li> |
---|
576 | |
---|
577 | <li>It uses <tt>svn copy</tt> to create the branch.</li> |
---|
578 | </ul> |
---|
579 | </li> |
---|
580 | |
---|
581 | <li>For further details refer to the section <a href= |
---|
582 | "code_management.html#svn_branching_create">Creating Branches</a>.</li> |
---|
583 | </ul> |
---|
584 | |
---|
585 | <p><tt>fcm branch --list</tt> lists the branches created by you (and/or other |
---|
586 | users) at the HEAD revision of a standard FCM project.</p> |
---|
587 | |
---|
588 | <ul> |
---|
589 | <li>By default, it lists the branches created by you at the HEAD revision. |
---|
590 | To display the branches at a different revision, you can use the |
---|
591 | <tt>--revision arg</tt> option.</li> |
---|
592 | |
---|
593 | <li>You can specify a list of users with the <tt>--user arg</tt> |
---|
594 | option, where "arg" is a colon separated list of users. (Alternatively, |
---|
595 | you can specify this option multiple times.) When this option is set, |
---|
596 | the command lists the branches created by the specified list of users |
---|
597 | instead.</li> |
---|
598 | |
---|
599 | <li>By default, it lists the branches in the FCM URL keyword format. If you |
---|
600 | want to print the full Subversion URL of the branches, you can use the |
---|
601 | <tt>--verbose</tt> option.</li> |
---|
602 | |
---|
603 | <li>The command returns 0 (success) if one or more branches is found |
---|
604 | for the specified users, or 1 (failure) if no branch is found.</li> |
---|
605 | </ul> |
---|
606 | |
---|
607 | <h4>Alternate Names</h4> |
---|
608 | |
---|
609 | <p>br</p> |
---|
610 | |
---|
611 | <h3><a name="fcm_svn_ci">fcm commit</a></h3> |
---|
612 | |
---|
613 | <h4>Usage</h4> |
---|
614 | |
---|
615 | <p>fcm commit [--dry-run] [--svn-non-interactive] [--password arg] [PATH]</p> |
---|
616 | |
---|
617 | <h4>Description</h4> |
---|
618 | |
---|
619 | <p><tt>fcm commit</tt> sends changes from your working copy in the current |
---|
620 | working directory (or from PATH if it is specified) to the repository.</p> |
---|
621 | |
---|
622 | <ul> |
---|
623 | <li>This command performs the following actions: |
---|
624 | |
---|
625 | <ul> |
---|
626 | <li>It checks that the current working directory (or PATH if it is |
---|
627 | specified) is a working copy. (If not, it aborts with an error).</li> |
---|
628 | |
---|
629 | <li>It always commits from the top level of the working copy.</li> |
---|
630 | |
---|
631 | <li>It checks that there are no files in conflict, missing or out of |
---|
632 | date (it aborts if there are).</li> |
---|
633 | |
---|
634 | <li>It checks that any files which have been added have the |
---|
635 | <em>svn:executable</em> property set correctly (in case a script was |
---|
636 | added before the execute bit was set correctly).</li> |
---|
637 | |
---|
638 | <li>It reads in any existing commit message and strips out any previous |
---|
639 | status info (it starts with an empty file if there is none). |
---|
640 | |
---|
641 | <ul> |
---|
642 | <li>The commit message is stored in the file |
---|
643 | <tt>#commit_message#</tt> in the top level of your working |
---|
644 | copy.</li> |
---|
645 | </ul> |
---|
646 | </li> |
---|
647 | |
---|
648 | <li>If you have run the <a href="fcm_svn_merge">merge</a> command |
---|
649 | before the commit, you will get a standard commit log template below |
---|
650 | the line that says "--This line will be ignored and those below will be |
---|
651 | inserted automatically--". If you need to add any extra message to the |
---|
652 | log, please do so <strong>above</strong> this line.</li> |
---|
653 | |
---|
654 | <li>It adds the following line to the commit message:<br> |
---|
655 | <tt>--This line, and those below, will be ignored--</tt><br> |
---|
656 | This line, and anything below it, is automatically ignored by <tt>svn |
---|
657 | commit</tt>.</li> |
---|
658 | |
---|
659 | <li>It adds current status information to the commit message showing |
---|
660 | the list of modifications.</li> |
---|
661 | |
---|
662 | <li>It starts an editor to allow you to edit the commit message. |
---|
663 | |
---|
664 | <ul> |
---|
665 | <li>If defined, the environment variable SVN_EDITOR specifies the |
---|
666 | editor.</li> |
---|
667 | |
---|
668 | <li>Otherwise the environment variable VISUAL specifies the |
---|
669 | editor.</li> |
---|
670 | |
---|
671 | <li>Otherwise the environment variable EDITOR specifies the |
---|
672 | editor.</li> |
---|
673 | |
---|
674 | <li>Otherwise the editor <em>nedit</em> is used.</li> |
---|
675 | </ul> |
---|
676 | </li> |
---|
677 | |
---|
678 | <li>It reports the commit message and then asks if you want to proceed |
---|
679 | (it aborts if not).</li> |
---|
680 | |
---|
681 | <li>It calls <tt>svn commit</tt> to send the changes to the |
---|
682 | repository.</li> |
---|
683 | |
---|
684 | <li>It calls <tt>svn update</tt> to bring your working copy up to the |
---|
685 | new revision.</li> |
---|
686 | </ul> |
---|
687 | </li> |
---|
688 | |
---|
689 | <li>Subversion may prompt you for authentication if it is the first time you |
---|
690 | access the repository. The command fails if the authentication fails. If you |
---|
691 | specify the <tt>--non-interactive</tt> option, Subversion will not prompt you for |
---|
692 | authentication. In such case, the command will simply fail if authentication |
---|
693 | is required. You can use the <tt>--password</tt> option to specify a password. Please |
---|
694 | note that the <tt>--svn-non-interactive</tt> option is always specified if you are |
---|
695 | running "commit" from the FCM GUI. If authentication is required, you should |
---|
696 | specify your password using the <tt>--password</tt> option in "Other options".</li> |
---|
697 | |
---|
698 | <li>The <tt>--dry-run</tt> switch prevents the command from committing any |
---|
699 | changes. This can be used to allow you to add notes to your commit message |
---|
700 | whilst you are still preparing your change.</li> |
---|
701 | </ul> |
---|
702 | |
---|
703 | <p>For further details refer to the section <a href= |
---|
704 | "code_management.html#svn_basic_commit">Committing Changes</a>.</p> |
---|
705 | |
---|
706 | <h4>Alternate Names</h4> |
---|
707 | |
---|
708 | <p>ci</p> |
---|
709 | |
---|
710 | <h3><a name="fcm_svn_cf">fcm conflicts</a></h3> |
---|
711 | |
---|
712 | <h4>Usage</h4> |
---|
713 | |
---|
714 | <p>fcm conflicts [PATH]</p> |
---|
715 | |
---|
716 | <h4>Description</h4> |
---|
717 | |
---|
718 | <p><tt>fcm conflicts</tt> helps you to resolve any text files in your working |
---|
719 | copy which have conflicts by using the graphical merge tool <em>xxdiff</em>. |
---|
720 | If PATH is set, it must be a working copy, and the command will operate in |
---|
721 | it. If PATH is not set, the command will operate in your current working |
---|
722 | directory.</p> |
---|
723 | |
---|
724 | <li>This command performs the following actions: |
---|
725 | |
---|
726 | <ul> |
---|
727 | <li>For each text file reported as being in conflict (i.e. marked with a |
---|
728 | "C" by <tt>svn status</tt>) it calls <tt>xxdiff</tt>.</li> |
---|
729 | |
---|
730 | <li>If <tt>xxdiff</tt> reports all conflicts resolved then if asks if |
---|
731 | you wish to run <tt>svn resolved</tt> on that file.</li> |
---|
732 | </ul> |
---|
733 | </li> |
---|
734 | |
---|
735 | <p>For further details refer to the section <a href= |
---|
736 | "code_management.html#svn_basic_conflicts">Resolving Conflicts</a>.</p> |
---|
737 | |
---|
738 | <h4>Alternate Names</h4> |
---|
739 | |
---|
740 | <p>cf</p> |
---|
741 | |
---|
742 | <h3><a name="fcm_svn_rm">fcm delete</a></h3> |
---|
743 | |
---|
744 | <h4>Usage</h4> |
---|
745 | |
---|
746 | <p>fcm delete --check (-c)</p> |
---|
747 | |
---|
748 | <p>fcm delete <any valid <em>svn delete</em> options></p> |
---|
749 | |
---|
750 | <h4>Description</h4> |
---|
751 | |
---|
752 | <p><tt>fcm delete</tt> supports all of the switches, arguments and alternate |
---|
753 | names supported by <tt>svn delete</tt> (refer to the <a href= |
---|
754 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.delete.html">Subversion |
---|
755 | book</a> for details).</p> |
---|
756 | |
---|
757 | <ul> |
---|
758 | <li>In addition, <tt>fcm delete</tt> supports a <tt>--check</tt> switch (no |
---|
759 | other switches or arguments). When this is specified then <tt>fcm</tt> |
---|
760 | checks for any files which are missing (i.e. marked with a "!" by <tt>svn |
---|
761 | status</tt>) and prompts to see if you wish to schedule them for deletion |
---|
762 | at the next commit (using <tt>svn delete</tt>). |
---|
763 | |
---|
764 | <li>Subversion may prompt you for authentication if it is the first time |
---|
765 | you access the repository. The command fails if the authentication fails. |
---|
766 | If you specify the <tt>--non-interactive</tt> option, Subversion will not prompt |
---|
767 | you for authentication. In such case, the command will simply fail if |
---|
768 | authentication is required. Please note that the <tt>--non-interactive</tt> option |
---|
769 | is automatically specified if you are running "delete" from the FCM GUI and |
---|
770 | you have not checked the box "Check for files and directories...". If |
---|
771 | authentication is required, you should run "delete" in interactive mode on |
---|
772 | a command line.</li> |
---|
773 | </ul> |
---|
774 | |
---|
775 | <p>For further details refer to the section <a href= |
---|
776 | "code_management.html#svn_basic_check">Adding and Removing Files</a>.</p> |
---|
777 | |
---|
778 | <h3><a name="fcm_svn_diff">fcm diff</a></h3> |
---|
779 | |
---|
780 | <h4>Usage</h4> |
---|
781 | |
---|
782 | <p>fcm diff --branch (-b) [--graphical (-g) | --diff-cmd arg [--extensions |
---|
783 | (-x) arg] | --wiki | --trac (-t)] [TARGET]</p> |
---|
784 | |
---|
785 | <p>fcm diff [--graphical (-g) | --diff-cmd arg [--extensions (-x) arg]] |
---|
786 | <any valid <em>svn diff</em> options></p> |
---|
787 | |
---|
788 | <h4>Description</h4> |
---|
789 | |
---|
790 | <p><tt>fcm diff</tt> supports all of the switches, arguments and alternate |
---|
791 | names supported by <tt>svn diff</tt> (refer to the <a href= |
---|
792 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.diff.html">Subversion |
---|
793 | book</a> for details). In addition, <tt>fcm diff</tt> supports the following |
---|
794 | switches:</p> |
---|
795 | |
---|
796 | <ul> |
---|
797 | <li>If <tt>--graphical</tt> is specified, the command uses a graphical tool |
---|
798 | to display the differences. (The default graphical <em>diff</em> tool is |
---|
799 | <em>xxdiff</em>, but you can alter the behaviour by following the |
---|
800 | instruction discussed in the sub-section on <a href= |
---|
801 | "code_management.html#svn_basic_diff">Examining Changes</a>.) This |
---|
802 | switch can be used in combination with all other valid switch (including |
---|
803 | <tt>--branch</tt>) except <tt>--diff-cmd</tt>, <tt>--extensions</tt>, |
---|
804 | <tt>--trac</tt> and <tt>--wiki</tt>.</li> |
---|
805 | |
---|
806 | <li>If <tt>--branch</tt> is specified, the command displays the differences |
---|
807 | between the target branch and its parent. This should show you the |
---|
808 | differences which you would get if you tried to merge the changes in the |
---|
809 | branch into its parent. It performs the following actions: |
---|
810 | |
---|
811 | <ul> |
---|
812 | <li>If TARGET is specified, it must either be a URL or a path to a |
---|
813 | local working copy. Otherwise, the current working directory must be a |
---|
814 | working copy. The specified URL or that of the working copy must be a |
---|
815 | valid branch in a standard FCM project.</li> |
---|
816 | |
---|
817 | <li>It determines the base of the branch relative to its parent. This is |
---|
818 | adjusted to account for any merges from the branch to its parent or |
---|
819 | vice-versa.</li> |
---|
820 | |
---|
821 | <li>It reports what path and revision it is comparing against.</li> |
---|
822 | |
---|
823 | <li>If <tt>--trac</tt> is specified, it launches Trac with your default |
---|
824 | web browser to display it. Note: if TARGET is a working copy, local |
---|
825 | changes in it will not be displayed by Trac.</li> |
---|
826 | |
---|
827 | <li>If <tt>--wiki</tt> is specified, it prints a Trac wiki syntax for |
---|
828 | the differences between the base and the specified branch.</li> |
---|
829 | |
---|
830 | <li>Otherwise, it calls <tt>svn diff</tt> to report the differences |
---|
831 | between the base and the specified branch (or working copy).</li> |
---|
832 | </ul> |
---|
833 | </li> |
---|
834 | </ul> |
---|
835 | |
---|
836 | <p>For further details refer to the section <a href= |
---|
837 | "code_management.html#svn_basic_diff">Examining Changes</a>.</p> |
---|
838 | |
---|
839 | <h3><a name="fcm_svn_merge">fcm merge</a></h3> |
---|
840 | |
---|
841 | <h4>Usage</h4> |
---|
842 | |
---|
843 | <p>fcm merge [--dry-run] [--non-interactive] [--verbose (-v)] SOURCE</p> |
---|
844 | |
---|
845 | <p>fcm merge --custom --revision N[:M] [--dry-run] [--non-interactive] |
---|
846 | [--verbose (-v)] SOURCE</p> |
---|
847 | |
---|
848 | <p>fcm merge --custom [--dry-run] [--non-interactive] [--verbose (-v)] |
---|
849 | URL1[@REV1] URL2[@REV2]</p> |
---|
850 | |
---|
851 | <p>fcm merge --reverse --revision [M:]N [--dry-run] [--non-interactive] |
---|
852 | [--verbose (-v)]</p> |
---|
853 | |
---|
854 | <h4>Description</h4> |
---|
855 | |
---|
856 | <p><tt>fcm merge</tt> allows you to merge changes from a source into your |
---|
857 | working copy.</p> |
---|
858 | |
---|
859 | <p>Before it begins, the command does the following:</p> |
---|
860 | |
---|
861 | <ul> |
---|
862 | <li>If a SOURCE/URL is specified, it can be a full URL or a partial URL |
---|
863 | starting at the branches, trunk or tags level. |
---|
864 | |
---|
865 | <ul> |
---|
866 | <li>If a partial URL is given, and the path name does not begin with |
---|
867 | "trunk", "tags" or "branches" then "branches/" is automatically |
---|
868 | added to the beginning of your path.</li> |
---|
869 | </ul> |
---|
870 | </li> |
---|
871 | |
---|
872 | <li>It determines the TARGET URL by examining your working copy.</li> |
---|
873 | |
---|
874 | <li>If the current directory is not the top of your working copy, it |
---|
875 | changes the current directory to the top of your working copy.</li> |
---|
876 | |
---|
877 | <li>If your working copy is not pointing to a branch of a project |
---|
878 | managed by FCM, the command aborts with an error.</li> |
---|
879 | |
---|
880 | <li>If you do not specify the <tt>--non-interactive</tt> option, it checks for any |
---|
881 | local modifications in your working copy. If it finds any it reports them |
---|
882 | and asks you to confirm that you wish to continue (it aborts if not).</li> |
---|
883 | </ul> |
---|
884 | |
---|
885 | <p>If neither <tt>--custom</tt> nor <tt>--reverse</tt> is specified, the command defaults to the |
---|
886 | automatic mode. Automatic merges are used to merge changes between two |
---|
887 | directly related branches, (i.e. the branches must either be created from the |
---|
888 | same parent or have a parent/child relationship). These merges are tracked by |
---|
889 | FCM and can be used by subsequent FCM commands. The merge delta is calculated |
---|
890 | by doing the following:</p> |
---|
891 | |
---|
892 | <ul> |
---|
893 | <li>It checks that the SOURCE and TARGET are directly related.</li> |
---|
894 | |
---|
895 | <li>It determines the base revision and path of the <em>common |
---|
896 | ancestor</em> of the SOURCE and TARGET.</li> |
---|
897 | |
---|
898 | <li>The base revision and path are adjusted to account for any merges |
---|
899 | from the SOURCE to the TARGET or vice-versa.</li> |
---|
900 | |
---|
901 | <li>It reports the revisions from SOURCE available for merging into |
---|
902 | TARGET. If the <tt>--verbose</tt> option is set, it prints the log for these |
---|
903 | revisions. It aborts if no revision is available for merging.</li> |
---|
904 | |
---|
905 | <li>If there are 2 or more revisions available for merging and you do not |
---|
906 | specify the <tt>--non-interactive</tt> target, it asks you which revision of the |
---|
907 | SOURCE you wish to merge from. The default is the last changed revision of |
---|
908 | the SOURCE. The merge delta is between the base and the specified revision |
---|
909 | of the SOURCE.</li> |
---|
910 | |
---|
911 | <li>If your working copy is a sub-tree of the TARGET, it ensures that the |
---|
912 | SOURCE contains only changes in the same sub-tree. Otherwise, the merge is |
---|
913 | unsafe, and the command will abort with an error. |
---|
914 | |
---|
915 | <p>N.B.: The command looks for changes in the SOURCE by going through the |
---|
916 | list of changed files since the the SOURCE was last merged into the TARGET. |
---|
917 | (If there is no previous merge from SOURCE to TARGET, the common ancestor |
---|
918 | is used.) It is worth noting that there are situations when the command |
---|
919 | will regard your merge as "unsafe" (and so will fail incorrectly) even if |
---|
920 | the changes in the SOURCE outside of the current sub-tree will result in a |
---|
921 | null merge. This can happen if the changes are the results of a previous |
---|
922 | merge from the TARGET to the SOURCE or if these changes have been |
---|
923 | reversed. In such case, you will have to perform your merge in a working |
---|
924 | copy of a full tree.</p> |
---|
925 | </li> |
---|
926 | </ul> |
---|
927 | |
---|
928 | <p>The <tt>--custom</tt> mode is useful if you need to merge changes selectively from |
---|
929 | another branch. The custom mode can be used in two forms: |
---|
930 | |
---|
931 | <ul> |
---|
932 | <li>In the first form, you must specify a SOURCE as well as a revision |
---|
933 | (range) using the <tt>--revision</tt> option. If you specify a single revision N, the |
---|
934 | merge delta is between revision N - 1 and revision N of the SOURCE. |
---|
935 | Otherwise, the merge delta is between revision N and revision M, where N |
---|
936 | < M.</li> |
---|
937 | |
---|
938 | <li>In the second form, you must specify two URLs. The merge delta is simply |
---|
939 | between the two URLs. (For each URL, if you do not specify a peg revision, |
---|
940 | the command will peg the URL with its last changed revision.)</li> |
---|
941 | </ul> |
---|
942 | |
---|
943 | <p>N.B. Unlike automatic merges, custom merges are not tracked or used by |
---|
944 | subsequent FCM <tt>diff</tt> or <tt>merge</tt> commands, (although <tt>branch |
---|
945 | --info</tt> can be set to report them). Custom merges are always allowed, even |
---|
946 | if your working copy is pointing to a sub-tree of a branch. However, there is no |
---|
947 | checking mechanism to ensure the safety of your sub-tree custom merge so you |
---|
948 | should only do this if you are confident it is what you want. |
---|
949 | Therefore, it is recommended that you use automatic merges where possible, and |
---|
950 | use custom merges only if you know what you are doing.</p> |
---|
951 | |
---|
952 | <p>The <tt>--reverse</tt> mode is useful if you need to reverse a changeset (or a range |
---|
953 | of changesets) in the current branch of the working copy. In this mode, you |
---|
954 | must specify a revision (range) using the <tt>--revision</tt> option. If you specify a |
---|
955 | single revision N, the merge delta is between revision N and revision N - 1 of |
---|
956 | the current branch. Otherwise, the merge delta is between revision M and |
---|
957 | revision N, where M > N.</p> |
---|
958 | |
---|
959 | <p>N.B. Like custom merges, reverse merges are not tracked or used by |
---|
960 | subsequent FCM <tt>diff</tt> or <tt>merge</tt> commands, (although <tt>branch |
---|
961 | --info</tt> can be set to report them). Likewise, reverse merges in sub-trees |
---|
962 | are always allowed, although there is no checking mechanism to ensure the safety of |
---|
963 | your sub-tree reverse merge.</p> |
---|
964 | |
---|
965 | <p>Once the merge delta is determined, the command performs the following:</p> |
---|
966 | |
---|
967 | <ul> |
---|
968 | <li>If you set the <tt>--dry-run</tt> option or if you are running in the interactive |
---|
969 | mode, it reports what changes will result from performing this merge by |
---|
970 | calling <tt>svn merge --dry-run</tt>. |
---|
971 | |
---|
972 | <ul> |
---|
973 | <li>It prints the actual <tt>svn merge --dry-run</tt> command if the |
---|
974 | <tt>--verbose</tt> option is specified.</li> |
---|
975 | |
---|
976 | <li>If you specify the <tt>--dry-run</tt> option, it exits after reporting what |
---|
977 | changes will result from performing the merge.</li> |
---|
978 | </ul> |
---|
979 | </li> |
---|
980 | |
---|
981 | <li>If you are running in the interactive mode, it asks if you want to go |
---|
982 | ahead with the merge (it aborts if not).</li> |
---|
983 | |
---|
984 | <li>It performs the merge by calling <tt>svn merge</tt> to apply the delta |
---|
985 | between the base and the SOURCE on your working copy. |
---|
986 | |
---|
987 | <ul> |
---|
988 | <li>It prints the actual <tt>svn merge</tt> command if the <tt>--verbose</tt> |
---|
989 | option is specified.</li> |
---|
990 | </ul> |
---|
991 | </li> |
---|
992 | |
---|
993 | <li>It adds a standard template into the commit message to provide |
---|
994 | details of the merge. The template is written below the line that says |
---|
995 | "--This line will be ignored and those below will be inserted |
---|
996 | automatically--". The <a href="fcm_svn_commit">fcm commit</a> command |
---|
997 | will detect the existence of the template, so that you will not be able |
---|
998 | to alter it by accident. |
---|
999 | |
---|
1000 | <ul> |
---|
1001 | <li>The commit message is stored in the file |
---|
1002 | <tt>#commit_message#</tt> in the top level of your working copy. It |
---|
1003 | is created by the merge command if it does not already exist.</li> |
---|
1004 | </ul> |
---|
1005 | </li> |
---|
1006 | </ul> |
---|
1007 | |
---|
1008 | <p>For further details refer to the section <a href= |
---|
1009 | "code_management.html#svn_branching_merge">Merging</a>.</p> |
---|
1010 | |
---|
1011 | <h3><a name="fcm_svn_mkpatch">fcm mkpatch</a></h3> |
---|
1012 | |
---|
1013 | <h4>Usage</h4> |
---|
1014 | |
---|
1015 | <p>fcm mkpatch [OPTIONS] URL [OUTDIR]</p> |
---|
1016 | |
---|
1017 | <h4>Description</h4> |
---|
1018 | |
---|
1019 | <p><tt>fcm mkpatch</tt> creates patches from the specified revisions of the |
---|
1020 | specified URL, which must be a branch URL of a valid FCM project. If the URL |
---|
1021 | is a sub-directory of a branch, it will use the root of the branch.</p> |
---|
1022 | |
---|
1023 | <p>If OUTDIR is specified, the output is sent to OUTDIR. Otherwise, the |
---|
1024 | output will be sent to a default location in the current directory |
---|
1025 | (<tt>$PWD/fcm-mkpatch-out/</tt>). The output directory will contain the patch |
---|
1026 | for each revision as well as a script for importing the patch.</p> |
---|
1027 | |
---|
1028 | <p>If a revision is specified using the <tt>--revision</tt> option, it will |
---|
1029 | attempt to create a patch based on the changes at that revision. If a revision |
---|
1030 | is not specified, it will attempt to create a patch based on the changes at |
---|
1031 | the HEAD revision. If a revision range is specified, it will attempt to create |
---|
1032 | a patch for each revision in that range (including the change in the lower |
---|
1033 | range) where changes have taken place in the URL. No output will be written if |
---|
1034 | there is no change in the given revision (range).</p> |
---|
1035 | |
---|
1036 | <p>The <tt>--exclude</tt> option can be used to exclude a path in the URL. The |
---|
1037 | specified path must be a relative path of the URL. Glob patterns such as |
---|
1038 | <tt>*</tt> and <tt>?</tt> are acceptable. Changes in an excluded path will not |
---|
1039 | be considered in the patch. A changeset containing changes only in the |
---|
1040 | excluded path will not be considered at all.</p> |
---|
1041 | |
---|
1042 | <p>The <tt>--organisation</tt> option can be used to specify the name of your |
---|
1043 | organisation. The command will attempt to parse the commit log message for |
---|
1044 | each revision in the patch. It will remove all merge templates, replace links |
---|
1045 | to Trac tickets with a simple string, and add information about the original |
---|
1046 | changeset. If you specify the name of your organisation, it will replace Trac |
---|
1047 | ticket links such as <tt>"ticket:123"</tt> to <tt>"$organisation ticket |
---|
1048 | 123"</tt>, and report the orginal changeset with a message such as |
---|
1049 | <tt>"$organisation changeset 1000"</tt>. Otherwise, it will report without the |
---|
1050 | organisation name, e.g. <tt>"Original ticket 123"</tt> and <tt>"Original |
---|
1051 | changeset 1000"</tt>.</p> |
---|
1052 | |
---|
1053 | <p>Within the output directory are the "patches" and the log message file for |
---|
1054 | each revision. It also contains a generated script <tt>fcm-import-patch</tt> |
---|
1055 | for importing the patches. The user of the script can invoke the script with |
---|
1056 | either a URL or a working copy argument, and the script will attempt to import |
---|
1057 | the patches into the given URL or working copy.</p> |
---|
1058 | |
---|
1059 | <p>It is worth noting that changes in Subversion properties, including changes |
---|
1060 | in executable permissions, are not handled by the import script.</p> |
---|
1061 | |
---|
1062 | <h3><a name="fcm_svn_switch">fcm switch</a></h3> |
---|
1063 | |
---|
1064 | <h4>Usage</h4> |
---|
1065 | |
---|
1066 | <p>fcm switch [OPTIONS] URL [PATH]</p> |
---|
1067 | |
---|
1068 | <p>fcm switch --relocate [OPTIONS] FROM TO [PATH]</p> |
---|
1069 | |
---|
1070 | <h4>Description</h4> |
---|
1071 | |
---|
1072 | <p><tt>fcm switch</tt> supports the arguments and alternate names supported by |
---|
1073 | <tt>svn switch</tt>. If <tt>--relocate</tt> is specified, it supports all |
---|
1074 | options supported by <tt>svn switch</tt>. Otherwise, it supports |
---|
1075 | <tt>--non-interactive</tt>, <tt>-r [--revision]</tt> and <tt>-q [--quiet]</tt> |
---|
1076 | only. (Please refer to the <a href= |
---|
1077 | "http://svnbook.red-bean.com/en/1.2/svn.branchmerge.switchwc.html">Subversion |
---|
1078 | book</a> for details).</p> |
---|
1079 | |
---|
1080 | <p>If <tt>--relocate</tt> is specified, FCM will pass the options and |
---|
1081 | arguments directly to the corresponding Subversion command. Otherwise, FCM |
---|
1082 | will ensure that your working copy switches safely through the following |
---|
1083 | actions:</p> |
---|
1084 | |
---|
1085 | <ul> |
---|
1086 | <li>If PATH (or the current working directory if PATH is not specified) |
---|
1087 | is not at the top of a working copy, the command will automatically |
---|
1088 | search for the top of the working copy, and the switch command will |
---|
1089 | always apply recursively from that level.</li> |
---|
1090 | |
---|
1091 | <li>You can specify only the "branch" part of the URL, such as "trunk", |
---|
1092 | "branches/dev/fred/r1234_bob" or even "dev/fred/r1234_bob" and the |
---|
1093 | command will work out the full URL for you.</li> |
---|
1094 | |
---|
1095 | <li>If you do not specify the <tt>--non-interactive</tt> option, it checks for any |
---|
1096 | local modifications in your working copy. If it finds any it reports them |
---|
1097 | and asks you to confirm that you wish to continue (it aborts if not).</li> |
---|
1098 | |
---|
1099 | <li>If you have some template messages in the <tt>#commit_message#</tt> file |
---|
1100 | in the top level of your working copy, (e.g. after you have performed a |
---|
1101 | merge), the command will report an error. You should remove the template |
---|
1102 | message manually from the <tt>#commit_message#</tt> file before re-running |
---|
1103 | <tt>switch</tt>.</li> |
---|
1104 | |
---|
1105 | <li>The command will analyse the current working copy URL and the |
---|
1106 | specified URL to ensure that they are in the same project. If your |
---|
1107 | working copy is a sub-tree of a project, the command will assume that |
---|
1108 | you want the same sub-tree in the new URL.</li> |
---|
1109 | </ul> |
---|
1110 | |
---|
1111 | <p>For further details refer to the section <a href= |
---|
1112 | "code_management.html#svn_branching_switch">Switching your working copy to |
---|
1113 | point to another branch</a>.</p> |
---|
1114 | |
---|
1115 | <h3><a name="fcm_svn_trac">fcm trac</a></h3> |
---|
1116 | |
---|
1117 | <h4>Usage</h4> |
---|
1118 | |
---|
1119 | <p>fcm trac [--browser (-b) ARG] [PATH]</p> |
---|
1120 | |
---|
1121 | <h4>Description</h4> |
---|
1122 | |
---|
1123 | <p><tt>fcm trac</tt> invokes the web-browser to launch the corresponding |
---|
1124 | URL of the web-based repository browser (currently Trac browser) to view |
---|
1125 | the Subversion repository specified by PATH.</p> |
---|
1126 | |
---|
1127 | <ul> |
---|
1128 | <li>If the <tt>--browser</tt> option is specified, ARG must be a valid command |
---|
1129 | to a web browser. If this option is not specified, the default is to use |
---|
1130 | "firefox", or whatever setting you have declared in the user configuration |
---|
1131 | file (<tt>$HOME/.fcm</tt>) using the label "SET::MISC::WEB_BROWSER". For |
---|
1132 | example: |
---|
1133 | |
---|
1134 | <pre> |
---|
1135 | set::misc::web_browser mozilla |
---|
1136 | </pre> |
---|
1137 | </li> |
---|
1138 | |
---|
1139 | <li>If PATH is specified, it must be a path to a local working copying, a |
---|
1140 | Subversion URL or a FCM URL keyword. If PATH is not specified, it is set to |
---|
1141 | ".", the current working directory. If PATH is a directory in the local |
---|
1142 | file system, the command will determine whether it is a working copy. If |
---|
1143 | so, its associated Subversion URL will be used. The command fails if the |
---|
1144 | directory is not a working copy. If PATH is a Subversion URL or a FCM URL |
---|
1145 | keyword, the URL can be "pegged" with a revision number using the "@" |
---|
1146 | symbol. For example, to view the trunk of the FCM repository at revision |
---|
1147 | 400, you can use "fcm:fcm_tr@400". The URL declared by or associated with |
---|
1148 | PATH must also be associated with a Trac browser URL, which is declared |
---|
1149 | using the "SET::TRAC::<pck>" label in the FCM central/user |
---|
1150 | configuration file. The command fails if an associated Trac browser URL is |
---|
1151 | not found.</li> |
---|
1152 | </ul> |
---|
1153 | |
---|
1154 | <h4>Alternate Names</h4> |
---|
1155 | |
---|
1156 | <p>www</p> |
---|
1157 | |
---|
1158 | <h3><a name="fcm_svn_other">Other Subversion Commands</a></h3> |
---|
1159 | |
---|
1160 | <p>Other <tt>svn</tt> commands are supported by <tt>fcm</tt> without |
---|
1161 | any change in functionality, with the following minor enhancements:</p> |
---|
1162 | |
---|
1163 | <ul> |
---|
1164 | <li>Where appropriate, FCM performs repository and revision keywords |
---|
1165 | expansion.</li> |
---|
1166 | |
---|
1167 | <li>The <tt>fcm checkout</tt> command fails if you attempt to checkout into |
---|
1168 | an existing working copy.</li> |
---|
1169 | |
---|
1170 | <li>FCM prints the corresponding <tt>svn</tt> command, except for |
---|
1171 | <tt>cat</tt> and any commands with the <tt>--xml</tt> option specified.</li> |
---|
1172 | </ul> |
---|
1173 | |
---|
1174 | <p>The following is a list of the commands:</p> |
---|
1175 | |
---|
1176 | <ul> |
---|
1177 | <li><a href= |
---|
1178 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.blame.html">svn |
---|
1179 | blame</a></li> |
---|
1180 | |
---|
1181 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.cat.html">svn |
---|
1182 | cat</a></li> |
---|
1183 | |
---|
1184 | <li><a href= |
---|
1185 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.checkout.html">svn |
---|
1186 | checkout</a></li> |
---|
1187 | |
---|
1188 | <li><a href= |
---|
1189 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.cleanup.html">svn |
---|
1190 | cleanup</a></li> |
---|
1191 | |
---|
1192 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.copy.html">svn |
---|
1193 | copy</a></li> |
---|
1194 | |
---|
1195 | <li><a href= |
---|
1196 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.export.html">svn |
---|
1197 | export</a></li> |
---|
1198 | |
---|
1199 | <li><a href= |
---|
1200 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.import.html">svn |
---|
1201 | import</a></li> |
---|
1202 | |
---|
1203 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.info.html">svn |
---|
1204 | info</a></li> |
---|
1205 | |
---|
1206 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.list.html">svn |
---|
1207 | list</a></li> |
---|
1208 | |
---|
1209 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.log.html">svn |
---|
1210 | log</a></li> |
---|
1211 | |
---|
1212 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.lock.html">svn |
---|
1213 | lock</a></li> |
---|
1214 | |
---|
1215 | <li><a href= |
---|
1216 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.mkdir.html">svn |
---|
1217 | mkdir</a></li> |
---|
1218 | |
---|
1219 | <li><a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.move.html">svn |
---|
1220 | move</a></li> |
---|
1221 | |
---|
1222 | <li><a href= |
---|
1223 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.propdel.html">svn |
---|
1224 | propdel</a></li> |
---|
1225 | |
---|
1226 | <li><a href= |
---|
1227 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.propedit.html">svn |
---|
1228 | propedit</a></li> |
---|
1229 | |
---|
1230 | <li><a href= |
---|
1231 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.propget.html">svn |
---|
1232 | propget</a></li> |
---|
1233 | |
---|
1234 | <li><a href= |
---|
1235 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.proplist.html">svn |
---|
1236 | proplist</a></li> |
---|
1237 | |
---|
1238 | <li><a href= |
---|
1239 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.propset.html">svn |
---|
1240 | propset</a></li> |
---|
1241 | |
---|
1242 | <li><a href= |
---|
1243 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.resolved.html">svn |
---|
1244 | resolved</a></li> |
---|
1245 | |
---|
1246 | <li><a href= |
---|
1247 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.revert.html">svn |
---|
1248 | revert</a></li> |
---|
1249 | |
---|
1250 | <li><a href= |
---|
1251 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.status.html">svn |
---|
1252 | status</a></li> |
---|
1253 | |
---|
1254 | <li><a href= |
---|
1255 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.unlock.html">svn |
---|
1256 | unlock</a></li> |
---|
1257 | |
---|
1258 | <li><a href= |
---|
1259 | "http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.update.html">svn |
---|
1260 | update</a></li> |
---|
1261 | </ul> |
---|
1262 | |
---|
1263 | <p>Please refer to the <a href= |
---|
1264 | "http://svnbook.red-bean.com/en/1.2/svn.ref.html">Subversion book</a> for |
---|
1265 | details of these commands.</p> |
---|
1266 | |
---|
1267 | <script type="text/javascript" src="maintain.js"> |
---|
1268 | </script> |
---|
1269 | </body> |
---|
1270 | </html> |
---|