Wikipedia

Code Co-op

Code Co-op
Code Co-op.png
Developer(s)Reliable Software
Initial release1996
Stable release
5.2a / June 4, 2011 (2011-06-04)
Repository Edit this at Wikidata
Operating systemWindows
Available inEnglish
TypeRevision control
LicenseMIT
Websiteweb.archive.org/web/20180211130625/http://www.relisoft.com/co_op/index.htm Edit this on Wikidata

Code Co-op is the peer-to-peer revision control system made by Reliable Software.

Distinguishing features

Code Co-op is a distributed revision control system of the replicated type.

It 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 (support for SMTP and POP3, integration with MAPI clients, Gmail) and LAN.

Code Co-op has a built-in peer-to-peer wiki system, which can be used to integrate documentation with a software project. It is also possible to create text-based Wiki databases, which can be queried using simplified SQL directly from wiki pages.

Standard features

  1. Distributed development support through E-mail, LAN, or VPN
  2. Change-based model—modifications to multiple files are checked in as one transaction
  3. File additions, deletions, renames, and moves are treated on the same level as edits—they can be added in any combination to a check-in changeset
  4. File changes can be reviewed before a check-in using a built-in or user-defined differ
  5. Synchronization changes can be reviewed in the same manner by the recipients
  6. Three-way visual merge
  7. Project history is replicated on each machine. Historical version can be reviewed, compared, or restored
  8. Integration with Microsoft SCC clients, including Visual Studio

History

Code Co-op was one of the first distributed version control systems. It debuted at the 7th Workshop on System Configuration Management in May 1997.[1]

The development of Code Co-op started in 1996, when Reliable Software, the distributed software company that makes it, was established. Reliable Software needed a collaboration tool that would work between the United States and Poland. The only dependable and affordable means of communication between the two countries was e-mail, hence the idea of using e-mail for the exchange of diffs. Of course, with such slow transport, using a centralized repository was infeasible. Each user of Code Co-op had to have a full replica of the repository, including the history of changes.

The problem was reduced to that of designing a distributed database that uses slow and unreliable transport for synchronization (later, faster LAN transport was also added). It also followed that the synchronization between multiple sites must use some kind of peer-to-peer protocol.

In 2018, the C++ source code for Code Co-op was released under the MIT License.

Theoretical foundations

Code Co-op is an example of a distributed database. Local repositories are considered the replicas of this virtual database. Each check-in corresponds to a distributed commit—a non-blocking version of a two-phase commit.

References

  1. ^ Milewski, B. (1997). Distributed source control system. ICSE'97 SCM-7 Workshop. Software Configuration Management. LNCS. 1235. pp. 98–10. doi:10.1007/3-540-63014-7_8. ISBN 978-3-540-63014-2. ISSN 0302-9743.

External links

This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.

Copyright © 2003-2025 Farlex, Inc Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.