source: LMDZ6/branches/Amaury_dev/tools/fcm/doc/release_notes/2-0.html @ 5444

Last change on this file since 5444 was 5129, checked in by abarral, 5 months ago

Re-add removed by mistake fcm

File size: 25.9 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4  <title>FCM 2-0 Release Notes</title>
5  <meta name="author" content="FCM team" />
6  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7  <link rel="icon" href="../etc/fcm-icon.png" type="image/png" />
8  <link rel="shortcut icon" href="../etc/fcm-icon.png" type="image/png" />
9  <link href="../etc/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" />
10  <link href="../etc/fcm.css" rel="stylesheet" media="screen" />
11</head>
12<body>
13  <div class="navbar navbar-inverse">
14    <div class="container-fluid">
15      <div class="navbar-header">
16        <a class="navbar-brand" href=".."><span class="fcm-version">FCM</span></a>
17      </div>
18      <div class="collapse navbar-collapse">
19        <ul class="nav navbar-nav">
20          <li><a href="../installation/">Installation</a></li>
21
22          <li><a href="../user_guide/">User Guide</a></li>
23        </ul>
24      </div>
25    </div>
26  </div>
27
28  <div class="page-header">
29    <div class="fcm-page-content pull-right well well-sm"></div>
30    <h1>FCM 2-0 Release Notes <small>11 March 2011</small></h1>
31  </div>
32
33  <div class="container">
34  <div class="row">
35  <div class="col-md-12">
36
37  <p>These are the release notes for FCM 2-0. You can use this release of FCM
38  freely under the terms of the FCM LICENSE, which you should receive with the
39  distribution of this release.</p>
40
41  <p>FCM is maintained by the FCM team at the Met Office. Please feedback any
42  bug reports or feature requests to us by <a href=
43  "mailto:fcm-team@metoffice.gov.uk">e-mail</a>.</p>
44
45  <h2 id="new">What's New?</h2>
46
47  <dl>
48    <dt><code><a href="../user_guide/command_ref.html#fcm-make">fcm
49    make</a></code>: new command</dt>
50
51    <dd>New extract/build system. Deprecates <code>fcm extract</code> and
52    <code>fcm build</code>. See <a href="../user_guide/make.html">User Guide
53    &gt; FCM Make</a> for detail on how to use the new system. See also
54    <a href="#new.make">fcm make: key differences compared with fcm
55    extract/build</a>.</dd>
56
57    <dt><code><a href="../user_guide/command_ref.html#fcm-branch-create">fcm
58    branch-create</a></code>: new command</dt>
59
60    <dd>Deprecates <code>fcm branch --create</code>.</dd>
61
62    <dt><code><a href="../user_guide/command_ref.html#fcm-branch-delete">fcm
63    branch-delete</a></code>: new command</dt>
64
65    <dd>Deprecates <code>fcm branch --delete</code>.</dd>
66
67    <dt><code><a href="../user_guide/command_ref.html#fcm-branch-diff">fcm
68    branch-diff</a></code>: new command</dt>
69
70    <dd>Deprecates <code>fcm diff --branch</code>.</dd>
71
72    <dt><code><a href="../user_guide/command_ref.html#fcm-branch-info">fcm
73    branch-info</a></code>: new command</dt>
74
75    <dd>Deprecates <code>fcm branch --info</code>.</dd>
76
77    <dt><code><a href="../user_guide/command_ref.html#fcm-branch-list">fcm
78    branch-list</a></code>: new command</dt>
79
80    <dd>Deprecates <code>fcm branch --list</code>.</dd>
81
82    <dt><code><a href="../user_guide/command_ref.html#fcm-browse">fcm
83    browse</a></code></dt>
84
85    <dd>This is now the preferred name of <code>fcm trac</code> or <code>fcm
86    www</code>.</dd>
87
88    <dt><code><a href="../user_guide/command_ref.html#fcm-cfg-print">fcm
89    cfg-print</a></code></dt>
90
91    <dd>This is now the preferred name of <code>fcm cfg</code>.</dd>
92
93    <dt><code><a href="../user_guide/command_ref.html#fcm-export-items">fcm
94    export-items</a></code>: new command</dt>
95
96    <dd>Deprecates <code>fcm_update_version_dir.pl</code>.</dd>
97
98    <dt>Configuration for keywords</dt>
99
100    <dd>New syntax and location. See <a href=
101    "../user_guide/annex_cfg.html#keyword">User Guide &gt; Annex: FCM
102    Configuration File &gt; FCM Keyword Configuration</a> for detail.
103    Equivalent settings in <samp>$FCM/etc/fcm.cfg</samp> will no longer work.
104    Those in <samp>$HOME/.fcm</samp> should continue to work. We would
105    encourage users to migrate to the new syntax and location.</dd>
106
107    <dt>Configuration for external commands</dt>
108
109    <dd>New syntax and location. See <a href=
110    "../user_guide/annex_cfg.html#external">User Guide &gt; Annex: FCM
111    Configuration File &gt; FCM External Configuration</a> for detail.
112    Equivalent settings in <samp>$FCM/etc/fcm.cfg</samp> and
113    <samp>$HOME/.fcm</samp> will no longer work.</dd>
114  </dl>
115
116  <h3 id="new.make">fcm make: key differences compared with fcm
117  extract/build</h3>
118
119  <p>Single command and framework of a configurable chain of <dfn>steps</dfn>,
120  e.g. extract, mirror, preprocess, build, etc.</p>
121
122  <ul>
123    <li>as opposed to 2 separate commands with fixed steps.</li>
124
125    <li>possible to set up multiple builds with different configurations from
126    the same extract.</li>
127  </ul>
128
129  <p>New configuration file format, with more powerful syntax and declarations.
130  E.g.:</p>
131
132  <ul>
133    <li>Improved support for specifying <dfn>name-spaces</dfn> (previously
134    <dfn>package</dfn> or <dfn>sub-package</dfn>) for a declaration.</li>
135
136    <li>Improved support for declaring and referencing variables.</li>
137
138    <li>Improved support for space and other meta-characters.</li>
139  </ul>
140
141  <p>extract: automatically associates location keywords to source tree
142  locations. E.g.:</p>
143
144  <ul>
145    <li>
146      <code>fcm extract</code> configuration requires repeated declarations:
147      <pre>
148cfg::type ext
149repos::foo::base fcm:foo/trunk
150expsrc::foo::base
151repos::bar::base fcm:bar/trunk
152expsrc::bar::base
153</pre>
154    </li>
155
156    <li>
157      <code>fcm make</code> configuration is much simpler:
158      <pre>
159steps = extract
160extract.ns = foo bar
161</pre>
162    </li>
163  </ul>
164
165  <p>extract: clearly distinguishes a base source tree from the diff source
166  trees for each project. E.g.:</p>
167
168  <ul>
169    <li>
170      <code>fcm extract</code> configuration requires arbitrary IDs for each
171      source tree, separate revision declarations, and assumes that the first
172      declared tree for a project is the <dfn>base</dfn>:
173      <pre>
174cfg::type ext
175repos::foo::base fcm:foo/trunk
176revision::foo::base 1234
177expsrc::foo::base
178repos::foo::b1 fcm:foo/branches/dev/fred/r1234_b1
179revision::foo::b1 2345
180repos::foo::b2 fcm:foo/branches/dev/bob/r1234_b2
181repos::foo::b3 fcm:foo/branches/dev/alice/r1234_b3
182</pre>
183    </li>
184
185    <li>
186      <code>fcm make</code> configuration uses different declarations for the
187      location of the <dfn>base</dfn> source tree and the locations of the
188      <dfn>diff</dfn> source trees:
189      <pre>
190steps = extract
191extract.ns = foo
192extract.location[foo] = trunk@1234
193extract.location{diff}[foo] = \
194    branches/dev/fred/r1234_b1@2345 \
195    branches/dev/bob/r1234_b2 \
196    branches/dev/alice/r1234_b3
197</pre>
198    </li>
199  </ul>
200
201  <p>extract: can easily filter parts of a project source tree, and/or change
202  the root of the extract tree. E.g.:</p>
203
204  <ul>
205    <li>
206      <code>fcm extract</code> configuration can cause confusion:
207      <pre>
208cfg::type ext
209repos::um::base fcm:um/trunk/src
210revision::foo::base vn7.7
211expsrc::um::base
212repos::um::b1 fcm:um/branches/dev/fred/vn7.7_b1/src
213repos::um::b2 fcm:um/branches/dev/bob/vn7.7_b2/src
214repos::um::b3 fcm:um/branches/dev/alice/vn7.7_b3/src
215</pre>
216    </li>
217
218    <li>
219      <code>fcm make</code> configuration is clearer and has more features:
220      <pre>
221steps = extract
222extract.ns = um
223extract.path-root[um] = src
224extract.path-excl[um] = configs scm
225extract.location[um] = trunk@vn7.7
226extract.location{diff}[um] = \
227    branches/dev/fred/vn7.7_b1 \
228    branches/dev/bob/vn7.7_b2 \
229    branches/dev/alice/vn7.7_b3
230</pre>
231    </li>
232  </ul>
233
234  <p>extract: works with project source trees as opposed to individual source
235  directories.</p>
236
237  <ul>
238    <li>fewer calls to the version control system servers.</li>
239
240    <li>deleted directories are now handled correctly.</li>
241  </ul>
242
243  <p>extract: can use multiple processes to retrieve source trees information
244  and to export source tree files from the version control system.</p>
245
246  <ul>
247    <li>extract of multiple projects and/or with multiple source trees can be
248    much faster.</li>
249  </ul>
250
251  <p>mirror: is now an independent step.</p>
252
253  <ul>
254    <li>can set up multiple mirror steps to mirror an extract to alternate
255    destinations.</li>
256  </ul>
257
258  <p>build: can use multiple processes to analyse the source files for
259  dependencies and other information.</p>
260
261  <ul>
262    <li>multi-process build is much faster.</li>
263  </ul>
264
265  <p>build: uses an internal task manager and runner - more efficient logic
266  possible:</p>
267
268  <ul>
269    <li>no longer requires GNU make.</li>
270
271    <li>no longer requires dummy files such as <samp>*.done
272    *.flags</samp>.</li>
273
274    <li>uses MD5 checksums to determine whether sources and targets are out of
275    date - as opposed to time stamps.</li>
276
277    <li>fails the build if duplicated targets are detected if those targets are
278    required by the build.</li>
279  </ul>
280
281  <p>build: has improved the logic for building Fortran program units.</p>
282
283  <ul>
284    <li>detects correctly multiple top program units in the same source
285    file.</li>
286
287    <li>sets up a module usage as an include dependency on the
288    <samp>*.mod</samp> file instead of the <samp>*.o</samp> file - reduces the
289    chance of module compile cascades in incremental mode.</li>
290
291    <li>only generates interface files on demand.</li>
292  </ul>
293
294  <p>build: has improved facilities for sources and targets selection.</p>
295
296  <ul>
297    <li>can now select targets by name-space, category and task.</li>
298
299    <li>has better documentation on the relationship between source files and
300    build targets.</li>
301
302    <li>note that target declarations are not cumulative and that targets are
303    inherited by default (unlike with <code>fcm build</code>).</li>
304  </ul>
305
306  <p>build: automatically uses the Fortran compiler to link Fortran executables
307  and the C compiler to link C executables.</p>
308
309  <p>build: has more diagnostics, e.g. on source dependencies, target build
310  tree, etc.</p>
311
312  <p>preprocess: is now an independent step, but shares all the logic of the
313  build system, e.g.:</p>
314
315  <ul>
316    <li>preprocessing dependency analysis and target update can be performed in
317    multiple processes.</li>
318
319    <li>note that file extensions are not modified by the preprocess step
320    unlike with <code>fcm build</code> which changed, for example
321    <samp>.F90</samp> extensions to <samp>.f90</samp>.</li>
322  </ul>
323
324  <p>Other notable changes:</p>
325
326  <ul>
327    <li>By default, <code>fcm make</code> will always rebuild link targets and
328    re-install scripts in inherited builds. Therefore, to use the executables
329    from a build all you need to do is set your <var>PATH</var> environment
330    variable to point to <samp>$DEST/build/bin/</samp> (where <var>$DEST</var>
331    is the destination of the make). Note that there is no
332    <samp>fcm_env.sh</samp> file produced by <code>fcm make</code>.</li>
333
334    <li><code>fcm extract</code> has the ability to fail if the declared
335    revision of a branch does not correspond to a changeset of that branch.
336    Furthermore, it can output the latest revision of a branch if the declared
337    revision is not the latest. <code>fcm make</code> does not support
338    this.</li>
339
340    <li>There is no equivalent of <code><a href=
341    "../user_guide/command_ref.html#fcm-cmp-ext-cfg">fcm cmp-ext-cfg</a></code>
342    for FCM make configurations.</li>
343
344    <li><code>fcm make</code> does not support defining a separate linker - it
345    always uses the compiler of the source file containing the main program
346    (which is the default with <code>fcm build</code>).</li>
347
348    <li><code>fcm make</code> does not recognise existing binaries as install
349    targets (unlike <code>fcm build</code>). This feature is currently used to
350    allow the Met Office's Suite Control System (SCS) to "build" suites but is
351    no longer considered the best method. SCS will continue to use <code>fcm
352    build</code> until such time as a better method is adopted or the system is
353    retired.</li>
354
355    <li><code>fcm make</code> recognises data files as install targets in a
356    similar way to <code>fcm build</code>. However, the default destination of
357    such targets is now the full name-space under the <samp>etc/</samp>
358    sub-directory.</li>
359
360    <li><code>fcm make</code> supports the building of libraries but does not
361    generate the relevant exclude dependency configuration as is done by
362    <code>fcm build</code>.</li>
363
364    <li><code>fcm make</code> has no equivalent of the <code>--archive</code>
365    nor the <code>--targets</code> options provided by <code>fcm
366    build</code>.</li>
367
368    <li><code>fcm build</code> recognises a file name without its extension as
369    a sub-package name. This is not true with <code>fcm make</code> which only
370    recognises the full file name as a namespace.</li>
371  </ul>
372
373  <p>In addition to the differences noted above, <code>fcm make</code> fixes
374  various subtle problems which can occur with <code>fcm extract</code> and
375  <code>fcm build</code> as a result of limitations in the internal design.
376  Overall, <code>fcm make</code> is much better and we recommend that all users
377  migrate to it. <code>fcm extract</code> and <code>fcm build</code> will
378  continue to be maintained for legacy systems but will not be developed
379  further.</p>
380
381  <h2 id="fix">Minor Changes and Bug Fixes</h2>
382
383  <dl>
384    <dt><code>fcm build</code></dt>
385
386    <dd>
387      <p>Handle directory names with a dot extension.</p>
388
389      <p>Correct search path for inherited configuration file.</p>
390
391      <p>Always export <var>OBJECTS</var> in generated
392      <samp>Makefile</samp>.</p>
393    </dd>
394
395    <dt><code>fcm cfg</code></dt>
396
397    <dd>
398      <p>Now an alias of <code>fcm cfg-print</code>.</p>
399
400      <p>The default behaviour is to parse FCM 2 configuration files. To parse
401      FCM 1 configuration files, use the <code>--fcm1</code> option.</p>
402
403      <p>The values in the output will no longer be lined up.</p>
404    </dd>
405
406    <dt><code>fcm extract</code></dt>
407
408    <dd>
409      <p>Fix double slashes in cache of extract with project root level
410      files.</p>
411
412      <p>Correct search path for inherited configuration file.</p>
413
414      <p>Fix incremental mode behaviour of targets with <dfn>deleted,
415      overriding inherited</dfn> status.</p>
416    </dd>
417
418    <dt><code>fcm keyword-print</code></dt>
419
420    <dd>Change in output format to match the new configuration file
421    format.</dd>
422
423    <dt><code>fcm mkpatch</code></dt>
424
425    <dd>
426      <p>Don't use patch file if PDF file detected.</p>
427
428      <p>Handle property changes to directories.</p>
429
430      <p>Handle copies within new directories.</p>
431
432      <p>Handle replaced directories.</p>
433
434      <p>Fix handling of symbolic links.</p>
435
436      <p>Fix pattern match used when checking for excluded or copied paths.</p>
437
438      <p>Use <code>--no-backup-if-mismatch</code> option to patch command to
439      ensure backup files not created if patch does not match exactly.</p>
440    </dd>
441
442    <dt><code>fcm</code> direct wrappers to <code>svn</code> commands</dt>
443
444    <dd>No longer prints <samp>=&gt; svn ...</samp> on STDOUT.</dd>
445
446    <dt>Misc fixes</dt>
447
448    <dd>Misc fixes related to changes in Perl 5.10 and Subversion 1.6.</dd>
449  </dl>
450
451  <h2 id="issues">Known Issues</h2>
452
453  <dl>
454    <dt>Build inheritance limitation: handling of include files</dt>
455
456    <dd>See the <a href="../user_guide/make.html#build.inherit">User Guide &gt;
457    FCM Make &gt; Build &gt; Build Inheritance</a> for detail.</dd>
458  </dl>
459
460  <h2 id="req">System Requirements</h2>
461
462  <h3 id="req.perl">Perl</h3>
463
464  <p>The core part of FCM is a set of Perl scripts and modules. At the Met
465  Office, FCM runs on:</p>
466
467  <dl>
468    <dt>Perl 5.8.2 on AIX 5.3</dt>
469
470    <dd>
471      <p><code>Text::ParseWords</code> (core Perl module) is upgraded to
472      version 3.22.</p>
473
474      <p>Met Office users do not use the code management commands and the
475      extract system on this platform.</p>
476    </dd>
477
478    <dt>Perl 5.8.5 on RHEL 4</dt>
479
480    <dd>
481      <p><a href=
482      "http://search.cpan.org/~gaas/libwww-perl/lib/HTTP/Date.pm">HTTP::Date</a>
483      in <a href="http://search.cpan.org/~gaas/libwww-perl/">libwww-perl</a> is
484      required by <code>fcm extract</code> and the extract system in <code>fcm
485      make</code>. (libwww-perl 5.79 installed.)</p>
486
487      <p><a href=
488      "http://search.cpan.org/~enno/libxml-enno/lib/XML/DOM.pm">XML::DOM</a> in
489      <a href="http://search.cpan.org/~enno/libxml-enno/">libxml-enno</a> is
490      required by the code management commands. (libxml-enno 1.02
491      installed.)</p>
492
493      <p><a href="http://search.cpan.org/~srezic/Tk/">Tk</a> is required by the
494      <code>fcm gui</code> command. (Tk 804.027 installed.)</p>
495    </dd>
496  </dl>
497
498  <h3 id="req.svn">Subversion</h3>
499
500  <p>To use the code management commands (and relevant parts of the extract
501  system) you need to have <a href=
502  "http://subversion.tigris.org/">Subversion</a> installed.</p>
503
504  <p>FCM requires Subversion 1.4.x or above. At the Met Office we are currently
505  using Subversion 1.4.3.</p>
506
507  <p>Note: you can use the extract system to mirror code to a remote platform
508  for building. Therefore it is only necessary to have Subversion installed on
509  the platform where you do your code development. If you use other platforms
510  purely for building and running then you do not need to have Subversion
511  installed on these platforms.</p>
512
513  <h3 id="req.trac">Trac</h3>
514
515  <p>The use of <a href="http://trac.edgewall.org/">Trac</a> is entirely
516  optional (although highly recommended if you are using Subversion).</p>
517
518  <p>At the Met Office we are currently using Trac 0.11.7. Note:</p>
519
520  <ul>
521    <li>The <code>--trac</code> and <code>--wiki</code> options to the
522    <code>fcm diff --branch</code> command allow you to view branch differences
523    using Trac. This requires Trac 0.10 or above.</li>
524
525    <li>Some of the example scripts in the <samp>examples/</samp> directory
526    require Trac 0.11.</li>
527  </ul>
528
529  <h3 id="req.other">Other Requirements</h3>
530
531  <p>The <code>fcm conflicts</code> command requires <a href=
532  "http://furius.ca/xxdiff/">xxdiff</a>. At the Met Office we are currently
533  using version 3.1. The <code>fcm diff --graphical</code> command also uses
534  xxdiff by default although other graphical diff tools can also be used.</p>
535
536  <p>The <code>fcm make</code> command uses <code>gzip</code>. At the Met
537  Office we are currently using gzip 1.2.4 on AIX 5.3 and gzip 1.3.3 on RHEL
538  4.</p>
539
540  <p>The extract system uses <code>diff3</code>, (which is part of <a href=
541  "http://www.gnu.org/software/diffutils/">GNU diffutils</a>), to merge
542  together changes where the same file is modified by two different branches
543  (compared with the base branch). At the Met Office we are currently using
544  version 2.8.1.</p>
545
546  <p>The mirror system uses <a href="http://rsync.samba.org/">rsync</a> to
547  mirror source file to another machine. At the Met Office we are currently
548  using version 2.6.3</p>
549
550  <p>The deprecated <code>fcm build</code> requires <a href=
551  "http://www.gnu.org/software/make/make.html">GNU make</a>. At the Met Office
552  we are currently using version 3.80.</p>
553
554  <p>FCM is intended to run on a Unix/Linux system. It is currently used at the
555  Met Office on Linux (RHEL 4.8) and AIX 5.3.</p>
556
557  <h2 id="ins">Installation</h2>
558
559  <p>FCM is distributed in the form of a compressed tar file. Un-pack the tar
560  file into an appropriate location on your system. Add the <samp>bin/</samp>
561  directory into your <var>PATH</var> environment variable. Once you have done
562  this you should now have full access to the FCM system, assuming that you
563  have met the requirements described in the previous section.</p>
564
565  <p>You should find the following contents in the distribution:</p>
566
567  <dl>
568    <dt>README</dt>
569
570    <dd>The README file contains the internal revision number of the
571    release.</dd>
572
573    <dt>COPYRIGHT.txt<br />
574    LICENSE.html</dt>
575
576    <dd>The FCM license and other copyright information.</dd>
577
578    <dt>bin/</dt>
579
580    <dd>Contains the <code>fcm</code> command and other utilities.</dd>
581
582    <dt>doc/</dt>
583
584    <dd>System documentation.</dd>
585
586    <dt>doc/release_notes/</dt>
587
588    <dd>Contains these release notes. It also contains the release notes for
589    all previous versions which may be useful if you have skipped any
590    versions.</dd>
591
592    <dt>doc/user_guide/</dt>
593
594    <dd>Contains the <a href="../user_guide/">FCM User Guide</a>.</dd>
595
596    <dt>doc/standards/</dt>
597
598    <dd>Contains the FCM <a href="../standards/perl_standard.html">Perl</a> and
599    <a href="../standards/fortran_standard.html">Fortran</a> coding standards.
600    The Perl standard describes the standards followed by the FCM code. The
601    Fortran standard contains some <a href=
602    "../standards/fortran_standard.html#fcm">specific advice</a> on the best
603    way of writing Fortran code for use with FCM as well as more general advice
604    on good practice.</dd>
605
606    <dt>doc/collaboration/</dt>
607
608    <dd>Contains the <a href="../collaboration/index.html">External
609    Distribution &amp; Collaboration for FCM Projects</a> document which
610    discusses how projects configured under FCM can be distributed
611    externally.</dd>
612
613    <dt>etc/</dt>
614
615    <dd>Miscellaneous items, including the <samp>fcm/keyword.cfg.eg</samp> file.
616    If you wish to define keywords for your site you will need to create the
617    <samp>etc/fcm/keyword.cfg</samp> file. An example file,
618    <samp>fcm/keyword.cfg.eg</samp>, is provided which is a copy of the file
619    currently used at the Met Office. For further details please refer to the
620    section <a href="../user_guide/system_admin.html#fcm-keywords">FCM
621    keywords</a> in the System Admin chapter of the User Guide.</dd>
622
623    <dt>examples/</dt>
624
625    <dd>Contains various example scripts which you may find useful. Note that
626    these scripts are all specific to the Met Office and may contain hard coded
627    paths and email addresses. They are provided in the hope that you may find
628    them useful as examples for setting up similar scripts of your own.
629    However, they should only be used after careful review to adapt them to
630    your environment.</dd>
631
632    <dt>examples/etc/regular-update.eg</dt>
633
634    <dd>An example of how you might set up a cron job to make use of the
635    <samp>&lt;repos&gt;.latest</samp> file (see
636    <code>examples/svn-hooks/post-commit-background</code>).</dd>
637
638    <dt>examples/lib/</dt>
639
640    <dd>Contains the <code>FCM::Admin::*</code> Perl library, which implements
641    the functionalities of the FCM admin utility commands.</dd>
642
643    <dt>examples/sbin/</dt>
644
645    <dd>Contains a selection of useful admin utility commands.</dd>
646
647    <dt>examples/svn-hooks/pre-commit</dt>
648
649    <dd>
650      This script restricts write-access to the repository by checking the
651      following:
652
653      <ul>
654        <li>It executes the Subversion utility <code>svnperms.py</code> if it,
655        and the associated <samp>svnperms.conf</samp> file, exist. This utility
656        checks whether the author of the current transaction has enough
657        permission to write to particular paths in the repository.</li>
658
659        <li>It checks the disk space required by the current transaction. It
660        fails the commit if it requires more than 5Mb of disk space.</li>
661      </ul>
662    </dd>
663
664    <dt>examples/svn-hooks/post-commit</dt>
665
666    <dd>A simple post-commit hook script which runs the script
667    <code>post-commit-background</code> in the background.</dd>
668
669    <dt>examples/svn-hooks/post-commit-background</dt>
670
671    <dd>
672      This script runs in the background after each commit.
673
674      <ul>
675        <li>It updates a <samp>&lt;repos&gt;.latest</samp> file with the latest
676        revision number.</li>
677
678        <li>It creates a dump of the new revision.</li>
679
680        <li>It calls <code>post-commit-background-custom</code> if it
681        exists.</li>
682      </ul>
683    </dd>
684
685    <dt>examples/svn-hooks/pre-revprop-change</dt>
686
687    <dd>A simple pre-revprop-change hook script which runs the script
688    <code>pre-revprop-change.pl</code>.</dd>
689
690    <dt>examples/svn-hooks/pre-revprop-change.pl</dt>
691
692    <dd>If a user attempts to modify the log message of a changeset and he/she
693    is not the original author of the changeset, this script will e-mail the
694    original author. You can also set up a watch facility to monitor changes of
695    log messages that affect particular paths in the repository. For further
696    details please refer to the section <a href=
697    "../user_guide/system_admin.html#svn_watch">Watching changes in log
698    messages</a> in the System Admin chapter of the User Guide.</dd>
699
700    <dt>examples/svn-hooks/post-revprop-change</dt>
701
702    <dd>A simple post-revprop-change hook script which invokes the
703    <code>trac-admin</code> command to <code>resync</code> the revision
704    property cache stored in the corresponding Trac environment.</dd>
705
706    <dt>lib/</dt>
707
708    <dd>Contains the Perl library of FCM.</dd>
709
710    <dt>man/</dt>
711
712    <dd>Contains a basic manual page for <code>fcm</code>.</dd>
713
714    <dt>t/</dt>
715
716    <dd>Contains unit test for FCM.</dd>
717
718    <dt>test/</dt>
719
720    <dd>Contains regression tests for FCM.</dd>
721
722    <dt>test/test_include/</dt>
723
724    <dd>Contains simple test code to check how your chosen compilers handle
725    include files (see <a href="#issues">Known Issues</a>).</dd>
726
727    <dt>tutorial/</dt>
728
729    <dd>Contains the files necessary to set up a Subversion repository for the
730    FCM tutorial. This will allow you to follow the <a href=
731    "../user_guide/getting_started.html#tutorial">tutorial section</a> in the
732    User Guide. See <samp>tutorial/README</samp> on how to set it up.</dd>
733  </dl>
734
735  </div>
736  </div>
737  </div>
738
739  <hr/>
740  <div class="container-fluid text-center">
741    <div class="row"><div class="col-md-12">
742    <address><small>
743      Copyright &copy; 2006-2021 British Crown (Met Office) &amp; Contributors.
744      <a href="http://www.metoffice.gov.uk">Met Office</a>.
745      See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
746      This document is released under the British <a href=
747      "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
748      "license">Open Government Licence</a>.<br />
749    </small></address>
750    </div></div>
751  </div>
752
753  <script type="text/javascript" src="../etc/jquery.min.js"></script>
754  <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
755  <script type="text/javascript" src="../etc/fcm.js"></script>
756  <script type="text/javascript" src="../etc/fcm-version.js"></script>
757</body>
758</html>
Note: See TracBrowser for help on using the repository browser.