Merging a new release of an entire source tree
Your team has been using an externally supplied source-code product, maintaining the sources in a VOB. The successive versions supplied by the vendor are checked in to the main branch and labeled VEND_R1, VEND_R2, and VEND_R3. Your team’s fixes and enhancements are created on subbranch enhance. The views in which your team works have the following configuration to branch from the VEND_R3 baseline:
element * CHECKEDOUT
element * .../enhance/LATEST
element * VEND_R3 -mkbranch enhance
element * /main/LATEST -mkbranch enhance
The version trees in the following figure show the following various likely cases:
- An element that your team started changing at Release 1 (enhance branch created at the version labeled VEND_R1)
- An element that your team started changing at Release 3
- An element that your team has never changed
When Release 4 arrives, and you need to integrate this release with your team’s changes.
To prepare for the merge, add the new release to the main branch and label the versions VEND_R4. Merging the source trees involves merging from the version labeled VEND_R4 to the most recent version on the enhance branch; if an element has no enhance branch, nothing is merged.
- Load the vendor’s Release 4 media into a standard directory tree:
cd /usr/tmp tar –xv
The directory tree created is mathlib_4.0.
- As the VOB owner, run clearfsimport in
a view configured with the default config spec to create Release 4 versions
on the main branches of elements (and create new elements as needed).
clearfsimport –recurse /usr/tmp/mathlib_4.0 /vobs/proj/mathlib
- Label the new versions:
cleartool mklbtype -c "Release 4 of MathLib sources" VEND_R4 Created label type "VEND_R4". cleartool mklabel -recurse VEND_R4 /vobs/proj/mathlib . (lots of output) .
- Set to a view that is configured with your team’s config spec and selects
the versions on the enhance branch:
cleartool setview enh_vu
- Merge from the VEND_R4 configuration to
your view:
cleartool findmerge -nback /vobs/proj/mathlib –fver VEND_R4 –merge \ –graphical
The –merge –graphical syntax instructs findmerge to merge automatically if possible, but if not, start the graphical merge tool.
- Verify the merges, and check in the modified elements.
element * CHECKEDOUT
|
|
element * VEND_R4 –mkbranch enhance
|
(change from VEND_R3 to VEND_R4) |
Elements that have been active continue to evolve on their enhance branches. When elements are revised for the first time, their enhance branches are created at the VEND_R4 version.