[10672] | 1 | <!DOCTYPE html> |
---|
| 2 | <html> |
---|
| 3 | <head> |
---|
| 4 | <title>FCM: User Guide: System Overview</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 class="active" href="#">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: User Guide: System Overview</h1> |
---|
| 31 | </div> |
---|
| 32 | |
---|
| 33 | <div class="container"> |
---|
| 34 | <div class="row"> |
---|
| 35 | <div class="col-md-12"> |
---|
| 36 | |
---|
| 37 | <p>The FCM system is designed to simplify the task of managing and building |
---|
| 38 | source code. It consists of the following components:</p> |
---|
| 39 | |
---|
| 40 | <h2 id="code-management">Code Management</h2> |
---|
| 41 | |
---|
| 42 | <p>FCM uses <a href="http://subversion.apache.org/">Subversion</a> for |
---|
| 43 | version control. For a summary of its main features please refer to the |
---|
| 44 | <a href="http://svnbook.red-bean.com/">Version Control with |
---|
| 45 | Subversion</a> book. Subversion is a generalised tool which can be used |
---|
| 46 | in lots of different ways. This makes some day-to-day tasks more complex |
---|
| 47 | than they need be. FCM defines a simplified process and appropriate |
---|
| 48 | naming conventions. It then adds a layer on top of Subversion to provide |
---|
| 49 | a natural interface which is specifically tailored to this process. Where |
---|
| 50 | appropriate it simply makes use of the command line tools provided by |
---|
| 51 | Subversion. However, in other cases it provides significant additional |
---|
| 52 | functionality, e.g.:</p> |
---|
| 53 | |
---|
| 54 | <ul> |
---|
| 55 | <li>By making some assumptions about the repository layout (i.e. by |
---|
| 56 | imposing a standard working practice) FCM simplifies the task of |
---|
| 57 | creating branches and enforces a standard branch naming |
---|
| 58 | convention.</li> |
---|
| 59 | |
---|
| 60 | <li>Having defined working practices and standard log messages allows |
---|
| 61 | FCM to greatly simplify the process of merging changes between |
---|
| 62 | branches.</li> |
---|
| 63 | |
---|
| 64 | <li>FCM makes use of <a href="http://furius.ca/xxdiff/">xxdiff</a> (a |
---|
| 65 | graphical diff and merge tool) to allow users to easily examine changes |
---|
| 66 | they have made and to simplify the process of resolving any conflicts |
---|
| 67 | which result from a merge.</li> |
---|
| 68 | </ul> |
---|
| 69 | |
---|
| 70 | <p>FCM uses <a href="http://trac.edgewall.org/">Trac</a>, a powerful web |
---|
| 71 | based tool, to manage software projects. <a href= |
---|
| 72 | "http://trac.edgewall.org/">Trac</a> has the following features:</p> |
---|
| 73 | |
---|
| 74 | <ul> |
---|
| 75 | <li>A flexible issue tracker which can be used to keep track of bugs, |
---|
| 76 | feature requests, etc. Each issue (known as a <q title= |
---|
| 77 | "http://trac.edgewall.org/wiki/TracTickets">ticket</q> within Trac) can |
---|
| 78 | be given a priority and assigned to a particular person. Changes made |
---|
| 79 | to your Subversion repository can easily be traced to the relevant |
---|
| 80 | ticket. Where appropriate, tickets can be used to record information |
---|
| 81 | about who has reviewed each change.</li> |
---|
| 82 | |
---|
| 83 | <li>A <q title="http://trac.edgewall.org/wiki/TracRoadmap">roadmap</q> |
---|
| 84 | feature which helps you to plan and manage project releases. Each |
---|
| 85 | ticket can be associated with a particular milestone. Trac can then |
---|
| 86 | easily show you what features or fixes went into a particular release |
---|
| 87 | or what work remains before a particular milestone is reached.</li> |
---|
| 88 | |
---|
| 89 | <li>A <q title="http://trac.edgewall.org/wiki/TracWiki">wiki</q> which |
---|
| 90 | can be used for project documentation.</li> |
---|
| 91 | |
---|
| 92 | <li>A browser for viewing your Subversion repository which allows you |
---|
| 93 | to browse the project tree / files and examine revision logs and |
---|
| 94 | changesets.</li> |
---|
| 95 | |
---|
| 96 | <li>A timeline view which summarises all the activity on a project |
---|
| 97 | (changes to the tickets, wiki pages or the Subversion repository).</li> |
---|
| 98 | </ul> |
---|
| 99 | |
---|
| 100 | <h2 id="build-and-extract">Build and Extract</h2> |
---|
| 101 | |
---|
| 102 | <p>FCM features a powerful build system, mainly aimed at building modern |
---|
| 103 | Fortran software applications. It has the following features:</p> |
---|
| 104 | |
---|
| 105 | <ul> |
---|
| 106 | <li>Parallel build.</li> |
---|
| 107 | |
---|
| 108 | <li>Efficient incremental build. Changes to the checksums of source files |
---|
| 109 | and/or the build configuration (e.g. changes to the compiler flags) trigger |
---|
| 110 | the appropriate re-compilation.</li> |
---|
| 111 | |
---|
| 112 | <li>Inheritance of items from an existing build.</li> |
---|
| 113 | |
---|
| 114 | <li>Build dependency analysis.</li> |
---|
| 115 | |
---|
| 116 | <li>Automatic generation of include files to contain the calling |
---|
| 117 | interfaces of standalone functions and subroutinues in Fortran source |
---|
| 118 | files.</li> |
---|
| 119 | |
---|
| 120 | <li>Extract of source files from multiple repositories and working |
---|
| 121 | copies.</li> |
---|
| 122 | |
---|
| 123 | <li>Extract and merge of source files from different branches of |
---|
| 124 | development.</li> |
---|
| 125 | |
---|
| 126 | <li>Minimal configuration.</li> |
---|
| 127 | </ul> |
---|
| 128 | |
---|
| 129 | <h2 id="illustration">Illustration</h2> |
---|
| 130 | |
---|
| 131 | <p>The diagram below illustrates how these components fit together.</p> |
---|
| 132 | |
---|
| 133 | <p><img class="img-polaroid" src="fcm_overview.png" |
---|
| 134 | alt="FCM system overview" /></p> |
---|
| 135 | |
---|
| 136 | </div> |
---|
| 137 | </div> |
---|
| 138 | </div> |
---|
| 139 | |
---|
| 140 | <hr/> |
---|
| 141 | <div class="container-fluid text-center"> |
---|
| 142 | <div class="row"><div class="col-md-12"> |
---|
| 143 | <address><small> |
---|
| 144 | © British Crown Copyright 2006-16 |
---|
| 145 | <a href="http://www.metoffice.gov.uk">Met Office</a>. |
---|
| 146 | See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br /> |
---|
| 147 | This document is released under the British <a href= |
---|
| 148 | "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel= |
---|
| 149 | "license">Open Government Licence</a>.<br /> |
---|
| 150 | </small></address> |
---|
| 151 | </div></div> |
---|
| 152 | </div> |
---|
| 153 | |
---|
| 154 | <script type="text/javascript" src="../etc/jquery.min.js"></script> |
---|
| 155 | <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script> |
---|
| 156 | <script type="text/javascript" src="../etc/fcm.js"></script> |
---|
| 157 | <script type="text/javascript" src="../etc/fcm-version.js"></script> |
---|
| 158 | </body> |
---|
| 159 | </html> |
---|