A flat repository works best for smaller projects that
have many packages that contain few or no unit files and subpackages.
In these cases, dividing packages into folders does not simplify the
project, and might make it more complex.
In contrast, large models typically encounter
problems when stored in flat repositories, especially when the model
contains many units and subpackages.
The following
list describes typical problems encountered with flat repositories:
- Visibility where a single directory containing
hundreds of files cannot be viewed in a clear way in a single window.
- Focus where in a directory containing hundreds
of files, you cannot focus on a single functional area of the project
and detect which elements belong to which functional area. This item
is important when you want to check if all the files are present in
your view, find the latest modification date, and so on.
- Portability where copying and sending several IBM® Rational® Rhapsody® files
representing a single functional area to a co‑worker or support person
poses a serious challenge because of the difficulty in determining
which files are needed.
- Branching where when checking out several
different parts of the model to a branch, it is difficult to identify
the required functionality and check in all related files.
- Integration with other tools and processes where
some configuration management tools assist with process and control
issues by setting permissions on directories. For example, you can
lock a directory called engine or core to
prevent modifications, but keep the application directory
open to changes. A flat repository cannot take advantage of these
options, but a hierarchical repository easily facilitates the implementation
of a directory‑driven process.