Starting a Project |
5 |
![]() |
Moving a Non-SCCS Software Development Project to Workshop TeamWare | |
Starting a New Software Development Project with Workshop TeamWare | |
Moving an Existing SCCS-Based Project to Sun Workshop TeamWare
To move an existing SCCS-based software project to TeamWare do the following:
If your project requires files to be grouped for transfer operations in special ways, you will have to write your own FLP(s).
Moving a Non-SCCS Software Development Project to Workshop TeamWare
To move an existing project into Workshop TeamWare do the following:
rcs2ws operates on RCS files under the parent directory and converts them to SCCS files, then puts the resulting SCCS files into a workspace. If a workspace doesn't already exist, it will be created. The parent directory hierarchy is unaffected by rcs2ws.
To convert files, rcs2ws invokes the RCS co command and the SCCS admin, get and delta commands. These commands will be found using the user's PATH variable. If the SCCS commands can't be found, then they will be sought in the /usr/ccs/bin directory.
![]() |
How to Use rcs2ws |
A workspace hierarchy is a chain of parent and child workspaces that is two or more layers deep. The number of layers in a hierarchy bears no relation to the number of workspaces comprising it. A parent workspace and its child comprise two layers. A parent workspace and three children also comprise two layers. A parent workspace and its child and grandchild comprise three layers. Figure 5-1 depicts a "flat" (three-tiered) hierarchy, and Figure 5-2 shows a "multitiered" (four-tiered) hierarchy.
Figure 5-1 A "Flat" (Three-Tiered) Hierarchy
Figure 5-2 A "Multitiered" (Four-Tiered) Hierarchy
File Transfer Considerations
The way in which you set up your workspace hierarchy can have an impact on the transfer of files up and down the hierarchy. File System Accessibility
In order to transfer (Bringover/Putback) files between workspaces, both the parent and the child must be mounted on the same file system. The automounter can be used to connect file systems. Flat Hierarchy vs. Multitiered Hierarchy
To properly design your workspace, you need to be aware of the advantages and disadvantages of flat and multitiered hierarchies. Advantages of a Flat Hierarchy
A flat workspace hierarchy is one in which many developers put back files to a single integration workspace. The advantage of a flat hierarchy is that all developers have immediate access to one another's work. The moment that Jack (a developer) puts back his work to the integration workspace, Jon (another developer) can use the Bringover Update transaction to have immediate access to the changes made by Jack. Disadvantages of a Flat Hierarchy
The disadvantage of a flat hierarchy is that time is often wasted because the integration workspace changes frequently, requiring developers to do frequent Bringover transactions, builds, and tests in order to keep their source base up-to-date. There is a cumulative effect of doing Putback transactions; the first developer to do a Putback resolves only one set of changes, the next developer resolves two, and so on till the last developer, who must resolve all of the changes that have been made within her development group. Advantages of a Multitiered Hierarchy
The amount of time required for a developer to put her work back to the integration workspace can be sharply reduced by interposing a tier of subintegration workspaces between the integration and development level workspaces. Disadvantages of a Multitiered Hierarchy
The disadvantages of multiplying subintegration workspaces are as follows:
You should consider dedicating a workspace as a product release staging area for each release. "Hang" the release workspace off a top-level "product" workspace. The product workspace should be located hierarchically above the workspaces in which normal development integration is done. Locating the product workspace this way permits you to begin development of your next release without corrupting the current release.
After the files are transferred to the product workspace, you use the Bringover transaction to transfer the files down to the release workspace. The release workspace can be used to make masters and can serve as an area in which to save work for subsequent releases if necessary.
Figure 5-3 shows a hierarchy that contains a product workspace and release workspaces for six different releases.
Figure 5-3 Hierarchy with Product and Release Workspaces
Note - You can use the reparenting feature to transfer data between release workspaces directly. See "A Reparenting Example" on page 68 for details. Refer also to the Sun WorkShop TeamWare: Solutions Guide for workspace hierarchy strategies.
Coordinating Access to Source Files
Coordinating write access to source files is important when changes will be made by several people. Maintaining a record of file updates allows you to determine when and why changes were made.
It may be necessary to create an alternative branch on the tree. Branches can be used to keep track of alternate versions developed in parallel, such as for bug fixes.
The SID for a branch delta consists of four parts: the release and level numbers and the branch and sequence numbers, or release.level.branch.sequence. The branch number is assigned to each branch that is a descendant of a particular trunk delta; the first branch is 1, the next 2, and so on. The sequence number is assigned, in order, to each delta on a particular branch. Thus, 1.3.1.1 identifies the first delta of the first branch derived from delta 1.3. A second branch to this delta would be numbered 1.3.2.1 and so on.
The concepts of branching can be extended to any delta in the tree. The branch component is assigned in the order of creation on the branch, independent of its location relative to the trunk. Thus, a branch delta can always be identified from its name. While the trunk delta can be identified from the branch delta's name, it is not possible to determine the entire path leading from the trunk delta to the branch delta.
For example, if delta 1.3 has one branch, all deltas on that branch will be named 1.3.n. If a delta on this branch has another branch emanating from it, all deltas on the new branch will be named 1.3.2.n. The only information that can be derived from the name of delta 1.3.2.2 is that it is usually the second chronological delta on the second chronological branch whose trunk ancestor is delta 1.3. In particular, it is not possible to determine from the name of delta 1.3.2.2 all of the deltas between it and its trunk ancestor (1.3).