Exclusive locking is necessary and sufficient to do parallel editing. This may not be desirable. For example, when Sam checked in his version, the new version he created was dependent on both the version he originally checked out and the one that was current when he finished the port. Furthermore, it may be desirable for Sam to check in intermediate versions of his files periodically. Yet, it may be a good idea to check in such work in progress versions periodically, if only to get them into the safekeeping of the source code control system.
Backups are one possible consideration.
Having copies on multiple disks is, in general, safer than just having a copy of your work on one disk, even if no backups are done. One way to do this is as follows. When Christine started her port, she could have forced an identical version of x.c to be created as the next version in the main line of development. Then, x.c will be locked for an extremely brief time. Then, Christine can check out the next to last version.