FCM Detailed Design: Code Management System
Author: FCM development team
Keywords: FCM, design

# Code Management System

The code management commands provided by FCM are generally wrappers around the underlying Subversion commands intended to add functionality or make the system easier to use. Most of the wrappers are very simple and you can find all the information you need from the command reference section of the FCM User Guide and from the source code (which all resides within the Perl package Fcm::Cm. This section describes the few areas which merit further discussion.

## Interactive Prompts

Several of the commands prompt for further information interactively. This is done using the function "&main::get_input". This allows a different version of the function to be used depending on the calling program. When called by the main `fcm` script this function simply prompts for information on the command line. However, when called from `fcm_gui_internal` (which runs commands within the GUI) this function uses a dialog box generated using Perl-Tk.

This design ensures that the main `fcm` command has no dependency on the Perl Tk module.

## Merging

Explain the logic used in determining the base path and revision.

## GUI

Anything needed here?