These are the release notes for FCM 2-2. You can use this release of FCM freely under the terms of the FCM LICENSE, which you should receive with the distribution of this release.
FCM is maintained by the FCM team at the Met Office. Please feedback any bug reports or feature requests to us by e-mail.
Subversion 1.6
Code management commands and extract system tested with Subversion 1.6. Note that Subversion 1.4 is no longer supported and Subversion 1.5 has not been tested.
We experienced some non-repeatable problems using Subversion 1.6 where
we got incorrect results from a merge. Running svn cleanup
appears to avoid the problem. Therefore this is now run prior to any
update, switch or merge command.
fcm branch-create
-rREV
option no longer supported - add a peg revision to
the source if necessary.
fcm branch-list
significant improvement to speed.
multiple projects can be specified as arguments.
more options for advanced listing.
-rREV
option no longer supported - can use peg revision
for each project in the argument list.
no longer returns 1 if 0 branch is found - non-zero value reserved for fatal errors.
new --quiet
option to print names of matched branches
only.
-v
option no longer supported - use new
--url
option to print branch names as full URLs instead of
FCM location keywords.
minor change to output format.
fcm conflicts
handle resolution of common cases of tree conflicts.
fcm make
build: change in how the dependency tree is created. This fixes the
behaviour where the system incorrectly reports cyclic dependency. An
example situation is where a recursive subroutine a
calls
subroutine b
which calls subroutine a
. The
object file target a.o has a dependency on
b.interface and the object file target b.o has a
dependency on a.interface. Previously,
b.interface would also depend on b.o which would
result in a cyclic dependency. This fix changes the internal data
structure for representing a build target. Use of fcm
make
at release 2-2 to build incrementally or to inherit a build
created by fcm make
at release 2-1 or before will result in an
incorrect behaviour or failure. Use the --new
option to start
a new build if the build destination is known to contain an existing build
created by fcm make
at release 2-1 or before.
FCM code management commands no longer insist on a rigid layout of its Subversion repositories. Behaviours can now be configured per repository. In its default setting, FCM code management commands no longer insist on branches/ and tags/ being present in a project.
fcm branch-create
new --switch
option to switch the current working copy to
point to the newly created branch.
fcm branch-delete
new --switch
option to switch the current working copy to
point to the trunk after the branch deletion.
fcm branch-diff
fixed: the command will no longer fail when called with an unmodified sub-tree of a branch.
fcm build/extract
fixed multi-level inheritance destination search path.
fcm commit
fixed incorrect behaviour on svn commit
failure.
fcm make
build: fixed multi-level inheritance destination search path.
build: do not use relative path for inherited include paths and object file paths in command lines.
build: fixed duplicated dependent targets being reported as missing dependencies.
build: fixed incorrect behaviour with Fortran *.mod target in incremental mode where only a build property (e.g. a compiler flag) associated with the source file of the *.mod target is modified.
extract: fixed handling of add/delete of files in file system locations during incremental extract.
extract: fixed Perl warning when a file system location contains a symbolic link with a non-existent target.
extract: fixed Perl warning when 2 diff locations both add a file of the same name but with different contents.
extract: improved merge conflict diagnostics.
extract: allow unmodified location in the configuration to pass in an inherited mode.
mirror: fixed: create configuration file in target even if there is no source to mirror.
mirror: always expand a relative path in a mirror target to a full path
to allow it to be inherited. Some infrequently used modifiers in the
mirror.prop
declarations are added/removed for this fix.
fcm merge
simplified prompts and diagnostic outputs.
new --auto-log
option for automatic merge. If the option
is specified, the command will include the logs of the merged revisions in
the commit log message automatically.
fcm mkpatch
no longer uses patch files if they include a carrriage return in the middle of a line.
fcm project-create
new command to create a new project and its trunk directory in a repository.
fixed logic for parsing URL@REV where URL is not a location keyword but REV is a revision keyword.
fixed: fcm:revision property setting: trailing spaces in each line will now be ignored.
tutorial: added section on tree conflict resolution.
tutorial: removed references to fcm gui
.
added new annex: quick reference: tree conflict resolution.
fixed: incompatibility problem.
FCM is intended to run on a Unix/Linux system. It is currently used at the Met Office on AIX-5.3 and RHEL-6.1.
used by: fcm
.
versions at Met Office: AIX-5.3: 5.8.2 (see remark), RHEL-6.1: 5.10.1.
remark: 5.8.2 on AIX-5.3: code management commands, the
extract system of fcm make
and the deprecated fcm
extract
are not used by Met Office users on this platform.
remark: 5.8.2 on AIX-5.3: Text::ParseWords
(core Perl module) is upgraded to version 3.22.
used by: the extract system in fcm make
and
the deprecated fcm extract
.
versions at Met Office: RHEL-6.1: 5.833.
used by: the code management commands.
versions at Met Office: RHEL-6.1: 2.36.
used by: fcm gui
.
versions at Met Office: RHEL-6.1: 804.028.
used by: the code management commands, the extract system
of fcm make
, the deprecated fcm extract
.
versions at Met Office: RHEL-6.1: 1.6.17.
remark: you can use the extract system to mirror code to a remote platform for building. Therefore it is only necessary to have Subversion installed on the platform where you do your code development. If you use other platforms purely for building and running then you do not need to have Subversion installed on these platforms.
used by: (optional, but highly recommended as a companion to Subversion)
versions at Met Office: 0.11.7.
used by: fcm branch-diff --graphical
,
fcm conflicts
, fcm diff --graphical
.
versions at Met Office: RHEL-6.1: 3.2.
remark: The fcm branch-diff --graphical
and
fcm diff --graphical
commands use xxdiff by default but can
also use other graphical diff tools.
used by: fcm make
.
versions at Met Office: AIX-5.3: 1.2.4, RHEL-6.1: 1.3.12.
used by: the extract system of fcm make
, the
deprecated fcm extract
.
versions at Met Office: RHEL-6.1: 2.8.1.
remark:: used to merge changes to source files modified by 2+ diff source trees (compared with the base).
used by: the mirror system of fcm make
, the
deprecated fcm extract
.
versions at Met Office: AIX-5.3: 2.6.2, RHEL-6.1: 3.0.6.
remark: used to mirror source file to another USER@HOST.
used by: the deprecated fcm build
.
versions at Met Office: AIX-5.3: 3.80, RHEL-6.1: 3.81.
FCM is distributed in the form of a compressed tar file. Un-pack the tar file into an appropriate location on your system. Add the bin/ directory into your PATH environment variable. Once you have done this you should now have full access to the FCM system, assuming that you have met the requirements described in the previous section.
You should find the following contents in the distribution:
fcm
command and other utilities.examples/svn-hooks/post-commit-background
).FCM::Admin::*
Perl library, which implements
the functionalities of the FCM admin utility commands.svnperms.py
if it,
and the associated svnperms.conf file, exist. This utility
checks whether the author of the current transaction has enough
permission to write to particular paths in the repository.pre-commit-size-threshold.conf
file.post-commit-background
in the
background.post-commit-background-custom
if it
exists.post-revprop-change-background
in the
background.trac-admin
command to
resync
the revision property cache stored in the corresponding
Trac environment. If a user modifies the log message of a changeset and
he/she is not the original author of the changeset, this script will e-mail
the original author. If the file
post-revprop-change-background-cc.list
exits, the script will
also e-mail those in the list.fcm
.