Archived: CVS Branches in GLAST Offline Software
Tag names for GlastRelease, ScienceTools, and EngineeringModel checkout packages follow the CMT format where the three numbers are prefaced by v, r, and p (for version, revision and patch). If there is a patch number, it indicates that one of the constituent packages has been branched. Note: Tag names for GlastRelease, ScienceTools, and EngineeringModel releases are spelled out and include the version number as in GlastRelease v2r0. Branch names are abbreviated (GR, ST, and EM) and include a hyphen before the version number, as in GR-v2r0. If a GlastRelease includes a patch number (e.g., GlastRelease v2r0p1), it means that one of the constituent packages in the release has been branched. (See example.) Why Branch?Branches provide an easy method of applying software patches to a released version of a package while allowing development to continue along the main trunk of that same package. This enables users to obtain necessary patches without requiring them to pick up other, possibly untested, updates. Potential PitfallsChanges along a branch are not applied to the main line of development. This means, changes can be "lost" if they only exist on a branch. Developers must be sure to merge changes from the branch back into the main trunk. (Refer below to: Merging a Branch back into the Main Trunk.) Branch NamingCVS allows users to specify a name for the branches they create. GLAST Offline will name branches according to the tag of GR they are associated with, for example:
Note the use of the dash between the name of GR and the tag. Creating a new BranchYou can create a new branch without having to check out a copy of the package:
Notes:
Accessing the branchThe important thing to remember is that - if you want to develop along the branch - you must first checkout the code from the branch. Developers who want to access the HEAD of a branch in order to make code update to the branch can do so:
OR
Branch Tag Naming ConventionUsually, changes that occur along a branch must be tagged so that they can be used. Tag names along a branch will take the following form:
Example:
How to Tag on a Branch?
OR
Release Manager and TaggingCurrently, the Release Manager (RM) will skip tags for LATEST that do not follow the form of:
Merging a Branch back into the Main TrunkTypically, patches applied along a branch will ultimately be merged into the main trunk of the package. This can be easily overlooked and developers should make sure to keep track of the branches on their packages. When developers are ready to merge changes into the main trunk, they:
ReferencesNote from Traudl:
Owned by: Heather Kelly
|