Table of contents |
2 Standard features 3 Challenges 4 External link |
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.
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.Distinguishing features
Standard features
Challenges