Move Component To Shared Repository
Overview
Some components that should be in the Shared IP repository were inadvertently created in the DDC-I private repository. These are the steps necessary to move the component.
Before You Begin
Make certain that the component really is shared IP. Anything that has customer specific information should not be moved.
Work must be quiescent on the component. PCRs that are in work complicate matters substantially, especially for DAL greater than E components. You must wait for all in work PCRs to be closed.
Moving the component
In the following, text in italics should be replaced with the appropriate values. $component refers to the component you are moving.
Problem Reporting Preparation
In the private Bugzilla:
- Login as your own user.
- Create a PCR with summary="Move $component from DDCI private to shared repository."
- For BSPs it is acceptable to create a single PCR to span all BSP components, select component=multiple.
In the private Bugzilla:
- Login as an administrator.
- At the bottom of the Bugzilla page, in the "Edit:" row, select "Products".
- Find the product being moved and click on the product name in the "Edit product" column.
- Check the box "Closed for PCR entry".
- Logout
In the shared IP Bugzilla:
- Login as an administrator.
- Create a Product with the same name, description, default milestone, components, versions, and milestones as the product in the private Bugzilla.
- Logout of Bugzilla.
In the shared IP Bugzilla:
- Login as your own user.
- Create a PCR with the same summary and component as the "move to" PCR just created in the private Bugzilla.
- For every one of the component's non-closed PCRs in the private Bugzilla, create a copy in the shared Bugzilla, including the following as part of the original comment:
Note this PCR is a "clone" of DDCI PCR NNNN, created when the $component was moved to the shared IP repository. It was originally created by foo@ddci.com. The PCR history was not moved. To see it you can visit https://deos.ddci.com/ddcibugzilla/show_bug.cgi?id=NNNN
In the private Bugzilla:
- Add a comment to every open PCR (excluding the one just created above) for the component with the following content, replacing MMMM with the PCR number for its shared IP copy:
This PCR has been moved to the shared IP repository. See https://deos.ddci.com/bugzilla/show_bug.cgi?id=MMMM
- Resolve the PCR as "RESOLVED, WONTFIX", and set all flags to "-". If the PCR has commits, then you didn't read the entry condition to this howto.
Move SCM
From the Private scm, do a fresh checkout the component, assuming $component is a BSP:
svn co https://ddci.zapto.org//svn/DDCI/products/bsp/$component # this should be above the labels an branches directories
Get all the components properties:
svn pl -v -R $component > old-properties.txt
Bill, I'm not sure if svn pl -v will provide a consistent file/directory order, you might also want to try this instead:
find $component | sort | xargs svn pl -v > old-properties.txt
Verify that all the externals are correct. If any refer to private IP scm, then the referenced directories will have to be moved and the externals updated. All externals should use relative repository syntax.
Remove the old subversion meta-infromation:
rm -r $component/.svn
Remove populated common folders (to prevent later svn add from hiccups):
rm -r $component/common/*
From the Shared IP repository, checkout the parent directory where the component will live.
svn co -N https://ddci.zapto.org//scm/Deos/products/bsp # The "-N" is VERY important.
Move the checked out component to its new home and add it:
mv $component bsp cd bsp svn add $component
Verify the properties match:
svn pl -v -R $component > new-properties.txt diff ../old-properties.txt new-properties.txt
Resolve any property differences. Then commit the component using the new shared Bugzilla PCR:
svn commit $component
The commit message should be:
PCR sharedBugzillaPCRNumber Move $component to shared IP repository.
If any of the components has a Deos:date property, talk to Aaron so he implements the proposed work around.
Delete the old component:
svn rm https://ddci.zapto.org//svn/DDCI/products/bsp/$component
The commit message should be:
PCR privateBugzillaPCRNumber Move $component to shared IP repository.
In the Private Bugzilla
- Login as your own user.
- "RESOLVE FIXED" the "Move to shared IP" PCR.
In the shared IP Bugzilla
- Login as your own user.
- "RESOLVE FIXED" the "Move to shared IP" PCR.