Main Page | See live article | Alphabetical index

Code Co-op

Code Co-op is a peer-to-peer version control system made by Reliable Software.

Table of contents
1 Distinguishing features
2 Standard features
3 Challenges
4 External link

Distinguishing features

Code Co-op uses peer-to-peer architecture to share projects among developers and to control changes to files. Instead of using a centralized database (the repository), it replicates its own database on each computer involved in the project.

The replicas are synchronized by the exchange of (differential) scripts. The exchange of scripts may proceed using different transports, including e-mail (integration with MAPI clients) and LAN.

The use of e-mail for synchronization is particularly convenient in widely distributed collaborations, or when using mobile computers.

Standard features

  1. Change-based model -- modifications to multiple files are checked in as one transaction
  2. File additions, deletions, renames, and moves are treated on the same level as edits -- they can be added in any combinations to a check-in
  3. File changes can be reviewed before a check-in using a built-in differ
  4. Synchronization changes can be reviewed in the same manner by the recipients
  5. Project history is replicated on each machine. Historical version can be reviewed, compared, or restored
  6. Integration with Microsoft SCC clients, including Visual Studio


The biggest challenge for a distributed system is the problem of simultaneous updates. A conflict arises when two project members make a modification to the same project (they check in a change) and their scripts miss each other. Currently (2003), Code Co-op makes an arbitrary (but deterministic) decision to accept only one of the conflicting changes. The other(s) are unrolled and are ready to be checked in again. However, since scripts are pushed, such conflicts happen infrequently.

External link