Serial development of a file that can be merged

In this scenario, a writer cannot currently check out the file using a reserved checkout because the branch is mastered by a different replica. He checks out the file using the –unreserved and –nmaster options. After he receives mastership, he finds that he must merge the changes before he can complete his checkin operation.

  1. John, in San Francisco, needs to change a script. He cannot check out the file using a reserved checkout because the branch is mastered by the Boston replica:
    cleartool checkout –c "option to suppress status msgs" /vobs/html/scripts/
    conv_fm.pl
    cleartool: Error: Unable to perform operation "checkout" in replica
    "sanfran_hub" of VOB "/vobs/html".
    cleartool: Error: Master replica of branch "/main" is "boston_hub".
    cleartool: Error: Unable to check out "/vobs/html/scripts/conv_fm.pl".
    
  2. He requests mastership of the branch:
    cleartool reqmaster –c "SF: add new option" /vobs/html/scripts/
    conv_fm.pl@@/main
    /vobs/html/scripts/conv_fm.pl@@/main: Change of mastership at
    sibling replica "boston_hub" was successful.
    Mastership is in transit to the new master replica.
    
  3. He checks out the file with the –unreserved and nmaster options and proceeds to edit the file:
    cleartool checkout –c "option to suppress status msgs" –unreserved
    –nmaster /vobs/html/scripts/conv_fm.pl
    Checked out "/vobs/html/scripts/conf_fm.pl" from version "/main/15".
    
  4. Until mastership is received at the San Francisco replica, he cannot check in his changes:
    cleartool checkin –nc conv_fm.pl
    cleartool: Error: Unable to perform operation "checkin" in replica
    "sanfran_hub" of VOB "/vobs/html".
    cleartool: Error: Master replica of branch "/main" is "boston_hub".
    cleartool: Error: Unable to check in "conv_fm.pl".
    
  5. When mastership is received at the San Francisco replica, he attempts to check in the file, but finds that he must perform a merge:
    
    cleartool checkin –nc conv_fm.pl
    cleartool: Error: The most recent version on branch "/main" is not
    the predecessor of this version.
    cleartool: Error: Unable to check in "conv_fm.pl".
    
  6. He performs the merge, and checks in the file:
    
    cleartool merge –to conv_fm.pl –c "merging from LATEST" –version /main/LATEST
    ********************************
    <<< file 1: /vobs/html/conv_fm.pl@@/main/15
    >>> file 2: /vobs/html/conv_fm.pl@@/main/16
    >>> file 3: conv_fm.pl
    ********************************
    . . .
    Moved contributor "conv_fm.pl" to "conv_fm.pl.contrib".
    Output of merge is in "conv_fm.pl".
    Recorded merge of "conv_fm.pl".
    
    cleartool checkin –nc conv_fm.pl
    Checked in "conv_fm.pl" version "/main/17".