既存のオブジェクトを変更するには、そのオブジェクトの修正可能バージョンを作成する必要があります。「チェックアウト (checkout)」 操作を使用して修正可能オブジェクトを作成することができます。この操作により、既存のバージョンからオブジェクトの 1 つのバージョンが作成されます。この新バージョンには、既存のバージョンからのすべてのプロパティーのコピーが含まれます。
チェックアウト操作は、PVCS get -l コマンド (Windows) または RCS co -l および SCCS get -e コマンド (UNIX) に類似しています。ただし、Rational Synergy では、オブジェクトの変更を計画する場合にのみ、オブジェクトをチェックアウトする必要があります。オブジェクトを表示または使用する場合は、オブジェクトをチェックアウトする必要はありません。いずれのタイプのオブジェクト (ファイル、ディレクトリー、シンボリック・リンク、実行可能ファイルなど) もチェックアウトすることができます。
「チェックイン (checkin)」 操作は通常、オブジェクト・バージョンを書き込み不能にすることで保存します。オブジェクトがチェックインされると、オブジェクトは他のユーザーが使用できるようになります。オブジェクトのチェックインにより、state (または、状況) プロパティーが変更されます。このプロパティーは、オブジェクトを変更および使用できるユーザーを定義します。チェックイン操作は、PVCS put -u コマンド (Windows) または RCS ci -u および SCCS delget コマンド (UNIX) に類似しています。
Rational Synergy では、1 つのファイルを 1 回チェックインするのではなく、同じバージョンを複数回チェックインすることができます。例えば、テストの準備が整っているときに、ファイルをチェックインすることができます。オブジェクトをリリースする準備が整っているときに、オブジェクトの別の状態にチェックインすることができます。
開発者 Jane の例では、Jane がスクロール・バグを修正するためにファイルを変更しようとしていることが分かります。Jane は、Jane に割り当てられているタスクを実行するために変更する必要があるファイル (gui.c や lines.c など) をチェックアウトします。ファイルの変更およびバグの修正の後で、Jane は、これらのファイルが次のプロダクト・ビルドで使用できるようにタスクを完了します。
チェックアウト・プロセスとチェックイン・プロセスは、開発サイクル中の変更制御の重要な部分です。開発者がオブジェクトを変更するためにオブジェクトをチェックアウトすると、開発者は、そのファイルの個人用コピーの所有者になります。デフォルトでは、Rational Synergy により、別の開発者は、同じファイルの独自のバージョンを変更のためにチェックアウトすることができます。このプロセスは parallel development として知られ、同じファイルのさまざまなバージョンは parallel versions と呼ばれます。この作業プロセスは、ファイルの 1 つのバージョンがすでに使用中であるため、遅延しません。
ある時点で、パラレル・バージョンをマージする必要があります。Rational Synergy merge 機能を使用して、ファイルの 2 つのパラレル・バージョンからの情報を混合することができます。2 つのオブジェクト・バージョンをマージすると、3 番目のバージョンが作成されます。Rational Synergy は、最新の共通祖先を使用して、新バージョンが含む必要がある変更を提示します。ファイル内にコンフリクトがない場合は、新バージョンを使用する準備が整っています。コンフリクトが存在する場合は、マージされたバージョンのコンフリクト・コードのどの行を使用するかを選択する必要があります。