|
|
b130a0 |
@subsection Goals
|
|
|
b130a0 |
|
|
|
9bfd15 |
This directory implements the Subversion's branches concept in a
|
|
|
9bfd15 |
trunk, branches, tags repository structure.
|
|
|
b130a0 |
|
|
|
b130a0 |
@subsection Description
|
|
|
b130a0 |
|
|
|
9bfd15 |
The @file{branches/} directory structure is an intermediate space
|
|
|
9bfd15 |
between @file{trunk/} directory structure and @file{tags/} directory
|
|
|
9bfd15 |
structure.
|
|
|
b130a0 |
|
|
|
b130a0 |
@subsection Usage
|
|
|
b130a0 |
|
|
|
9bfd15 |
If changes committed to the main develpment line are all predictable
|
|
|
9bfd15 |
(e.g., there is just one person committing changes), there is no a big
|
|
|
9bfd15 |
need of using @file{branches/} directory structure, in this case we
|
|
|
9bfd15 |
can go straight from @file{trunk/} to @file{tags/}. However, when
|
|
|
9bfd15 |
there is no way to predict changes in the main development directory
|
|
|
9bfd15 |
structure (e.g., there are many people working at it at the same time)
|
|
|
9bfd15 |
it is required to find out a space when changes can occur in
|
|
|
9bfd15 |
predictable ways.
|
|
|
9bfd15 |
|
|
|
9bfd15 |
At this point several options may arise to work with branches. Let's
|
|
|
9bfd15 |
see a few ones:
|
|
|
9bfd15 |
|
|
|
9bfd15 |
@subsubsection Temporal Branch
|
|
|
9bfd15 |
|
|
|
9bfd15 |
The branched directory is created temporaly to fix a problem and when
|
|
|
9bfd15 |
it is done, it is merged back into @file{trunk/} directory structure
|
|
|
9bfd15 |
and removed from the repository.
|
|
|
9bfd15 |
|
|
|
9bfd15 |
@subsubsection Major Release Branch
|
|
|
9bfd15 |
|
|
|
9bfd15 |
The branched directory is created to implement the concept of major
|
|
|
9bfd15 |
release. In this configuration we frequently take a functional
|
|
|
9bfd15 |
instance of @file{trunk/} directory structure and create branch for
|
|
|
9bfd15 |
it. While @file{trunk/} directory structure can receive new
|
|
|
9bfd15 |
functionalities or remove old ones, the branched instance of it does
|
|
|
9bfd15 |
not. The branched instance can receive updates for available files
|
|
|
9bfd15 |
only but not introduce new ones or remove old ones as it is done in
|
|
|
9bfd15 |
@file{trunk/} directory structure.
|
|
|
9bfd15 |
|
|
|
9bfd15 |
The frequency each branched directory is created depends on how long
|
|
|
9bfd15 |
can the branched directory could be on its state before consider it as
|
|
|
9bfd15 |
dated and also the time we want to provide it as stable for everyone
|
|
|
9bfd15 |
to use as expected. The exact time depends on the sort of information
|
|
|
9bfd15 |
such branched directory structure contains.
|
|
|
9bfd15 |
|
|
|
9bfd15 |
To illustrate this concept consider the @file{trunk/Scripts/Bash/Cli}
|
|
|
9bfd15 |
directory structure. This directory contains the main development line
|
|
|
9bfd15 |
of @command{centos-art} command-line internface. If there are several
|
|
|
9bfd15 |
people working on it and you find a problem in it, it could be very
|
|
|
9bfd15 |
frustrating for you try to solve it in an environment when other
|
|
|
9bfd15 |
changes could be introduced unexpectedly, specially if such change you
|
|
|
9bfd15 |
need to do is considerable long. For that reasing it is much better to
|
|
|
9bfd15 |
commit small changes frequently to fix small things, but if you
|
|
|
9bfd15 |
absolutly need to make a long change (e.g., you want to implement a
|
|
|
9bfd15 |
new functionality) it is necessary you create branch of @file{trunk/}
|
|
|
9bfd15 |
directory structure (or any other branch or tag already created) to be
|
|
|
9bfd15 |
on the safe side while you implement your functionality.
|
|
|
9bfd15 |
|
|
|
9bfd15 |
In order to keep branch creation organized, we use the @file{trunk}
|
|
|
9bfd15 |
directory structure as reference and add a numerical identifier to the
|
|
|
9bfd15 |
end of the path that increments one unit for each branch created.
|
|
|
b130a0 |
|
|
|
b130a0 |
@subsection See also
|
|
|
b130a0 |
|
|
|
b130a0 |
@menu
|
|
|
9bfd15 |
* Filesystem trunk::
|
|
|
9bfd15 |
* Filesystem tags::
|
|
|
b130a0 |
@end menu
|