Locking

Abstract

Maintaining version information for files is a primary purpose of version control systems. But with a design purpose serving software development, access to files by multiple people is a fundamental feature. Version control systems like RCS were a requirement for larger software development teams writing massive computer applications.

One powerful feature of file systems on multiple-user systems is sharing files. Along with multi-user systems file permissions provide a system of ownership and access privileges for users who wish to read and edit files. A situation arises where individuals could be editing the same file at the same time. This creates a scenario where the modifications of one person could overwrite the modifications of another. RCS provides the locking mechanism, to avoid this situation.

Need to redo some of this.

Locked

A file is locked in RCS when one person checks-out (see section on check-out) a file giving them exclusive rights to editing the file. The individual having the lock is considered the “locker”.

Since RCS is a version control system, files are not the unit that are locked. Versions of files are what are cable of being locked. Multiple people (or the same person) can check-out and lock multiple versions of the same file, so long as they are not locking the same versions.

Locks are enforced by denying attempts to check-out a locked version. These can however be circumvented by “breaking” the lock. The “breaking” of a lock is usually followed with a message to the

Unlocked

A file is unlocked in RCS when no person has checked-out (see section on check-out) a file as locked (see section on locked). Checking-out a file only as unlocked is necessary when the file only needs to be read but not edited. This can be the case when the file needs to be available for processing by an application or simply for human review.

Anything else to mention here?

Strict Locking

In order to keep two or more individuals from simultenously editing the same file in RCS, strict locking enforces that only one person has the ability to edit a file. RCS enforces locking by ensuring that only one person can check-out (see section on checking-out) a version (see section on versions) of a file can be made at a time. Other versions of a file can be checked-out at one time

Need to explain strictness.

Need to explain details of how it works.

Need to explain details of how to turn on or off strict locking (could be put somewhere else, though, perhaps a more advanced place).