Sun WorkShop TeamWare 2.1 User's Guide

Basic Concepts

TeamWare is based on a concurrent development model called Copy-Modify-Merge. Isolated (per developer) workspaces form the TeamWare model. A workspace is a specially designated UNIX directory and its subdirectories. With TeamWare, you copy source from a central workspace into your own workspace, modify the source, and merge your changes in the central workspace with the changes made by other developers.

In addition to providing isolated workspaces, TeamWare enables you to easily and intelligently copy files between workspaces and then merge changes that exist between corresponding files. The intelligent copy feature enables you to copy project files in groups that you (or the project administrator) determine are logically linked, and automatically determines differences between files in the originating workspace and the destination workspace.

TeamWare further assists the concurrent development process by determining whether differences exist between the files in the central workspace and your workspace. If differences are found to exist, TeamWare commands prevent you or another developer from copying over those changes; TeamWare then provides sophisticated window-based tools that help you to merge these differences.

Parent and Child Workspaces

When you copy files from a central workspace to create a new workspace, a special relationship is created between the central workspace and the new one. The central workspace is considered the parent of the newly created child workspace. You can acquire files from any Configuring workspace in this manner, and workspaces can have an unlimited number of children. The portion of the file system that you copy from the parent workspace is determined at the time you copy it. You can copy the entire contents of the parent to the child, making it a clone of the parent, or you can copy only portions of the file system hierarchy that are of interest to you. The TeamWare Configuring transaction used to copy files from a parent workspace to a child workspace is called Bringover.

When development and testing are complete in the child, you copy changes in files that were modified or added in the child, back into the parent workspace. Once the altered files are present in the parent, they can be copied by other children or passed up another level to the parent's parent workspace. The TeamWare Configuring transaction for copying changes in files from a child workspace to a parent workspace is called Putback.

If any of the files you attempt to put back are changed in both the parent and child workspace, the files are in conflict. If this is the case, Configuring will block the transaction. You must then use the Bringover transaction to bring over the changed information from the parent and use the Resolve transaction to resolve the conflict in the child workspace before you can put your work back to the parent.

Source Code Control System

TeamWare Configuring acts only upon files under the Source Code Control System (SCCS). When considering Configuring file transfer transactions, remember that source files are derived from SCCS deltas and are identified by SCCS delta IDs (SIDs). When a file is copied by either a Putback or Bringover transaction, Configuring acts upon (copies or merges) the file's SCCS history file (also known as the "s-dot-file"). How Configuring manipulates and merges the history files is described in Chapter 10, How Configuring Merges SCCS Files."

Changing Names

The current release of TeamWare uses new command names, so Table 1-1 summarizes the correspondences for you. Note that the old commands still work, however this manual uses the new commands and GUI names.

Table 1-1 Correspondences Between Old and New TeamWare Commands

Old Command 

New Command 

Old Tool Name 

New GUI Name 

codemgrtool 

twconfig, teamware 

CodeManager 

Configuring 

vertool 

twversion 

VersionTool 

Versioning 

filemerge 

twmerge 

FileMerge 

Merging 

maketool 

twbuild 

MakeTool 

Building 

freezepttool 

twfreeze 

FreezePoint 

Freezepointing