Code Co-op is the
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
revision control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
system made by Reliable Software.
Distinguishing features
Code Co-op is a distributed
revision control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
system of the replicated type.
It uses
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
architecture to share projects among developers and to control changes to files. Instead of using a
centralized database A centralized database (sometimes abbreviated CDB) is a database that is located, stored, and maintained in a single location. This location is most often a central computer or database system, for example a desktop or server CPU, or a mainframe co ...
(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
The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typi ...
and
POP3
In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, i ...
, integration with
MAPI
Messaging Application Programming Interface (MAPI) is an Application programming interface, API for Microsoft Windows which allows programs to become email-aware. While MAPI is designed to be independent of the protocol, it is usually used to com ...
clients,
Gmail
Gmail is the email service provided by Google. it had 1.5 billion active user (computing), users worldwide, making it the largest email service in the world. It also provides a webmail interface, accessible through a web browser, and is also ...
) 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
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
directly from wiki pages.
Standard features
#Distributed development support through
E-mail
Electronic mail (usually shortened to email; alternatively hyphenated e-mail) is a method of transmitting and receiving Digital media, digital messages using electronics, electronic devices over a computer network. It was conceived in the ...
,
LAN, or
VPN
#Change-based model—modifications to multiple files are checked in as one
transaction
#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
#File changes can be reviewed before a check-in using a built-in or user-defined differ
#Synchronization changes can be reviewed in the same manner by the recipients
#Three-way visual merge
#Project history is replicated on each machine. Historical version can be reviewed, compared, or restored
#Integration with Microsoft SCC clients, including
Visual Studio
Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
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.
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
The United States of America (USA), also known as the United States (U.S.) or America, is a country primarily located in North America. It is a federal republic of 50 U.S. state, states and a federal capital district, Washington, D.C. The 48 ...
and
Poland
Poland, officially the Republic of Poland, is a country in Central Europe. It extends from the Baltic Sea in the north to the Sudetes and Carpathian Mountains in the south, bordered by Lithuania and Russia to the northeast, Belarus and Ukrai ...
. 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
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
protocol.
In 2018, the C++ source code for Code Co-op was released under the
MIT License
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
.
Theoretical foundations
Code Co-op is an example of a
distributed database
A distributed database is a database in which data is stored across different physical locations. It may be stored in multiple computers located in the same physical location (e.g. a data centre); or maybe dispersed over a computer network, netwo ...
. Local repositories are considered the
replicas
A replica is an exact (usually 1:1 in scale) copy or remake of an object, made out of the same raw materials, whether a molecule, a work of art, or a commercial product. The term is also used for copies that closely resemble the original, without ...
of this virtual database. Each check-in corresponds to a distributed commit—a non-blocking version of a
two-phase commit Two-phase may refer to:
* Two-phase electric power
* Two-phase commit protocol
* Two-phase flow
* Two-phase locking
* Binary phase, chemical compounds composed of two elements
{{Disambig ...
.
References
External links
*
{{Version control software
Distributed version control systems
Formerly proprietary software
Free software programmed in C++
Free version control software
Software using the MIT license
Version control systems