Centralized and distributed architecture
Solutions Overview: Helix Core Version Control System mentioned that version control systems can implement either a centralized model or a distributed model. Helix server supports both of these models, as well as configurations that are a hybrid of the two.
In a centralized model, users interact directly with a shared server, checking out files, working in those files, and then checking them back in to the shared server:
The client is a program that users interact with, such as the Helix server command line client, P4V, and P4Connect. Clients, in turn, interact with servers, which can also interact with each other.
Some clients might access a subset of the files stored on the shared server, while other clients might access all the files stored on the server.
The distributed model gives users access to a repository of
archived files — and changes to those files — from a server running on
their local machine. This means that the entire history of a file
is contained on each user’s machine. A user can manage versioned content
without interacting with any other Helix Core server, also called Helix server or p4d
, or even connecting to a network. A user can also
rewrite and revise history to discard unwanted intermediate changes. The
distributed model allows users to work experimentally, to try out changes
and branch new streams, without interfering with others' work, and
without the need for a network connection.
The distributed model:
In the distributed model, a user can work on their individual server until they’re ready to copy content to a shared server, making the content available to other users.
Unlike other version control systems, such as Git, users can copy a subset of the shared server’s content to the server on their own machine, rather than copying the entire shared server repository.
In this model, users first submit changes to their personal server and then push changes to a shared server. A different user can then fetch those changes from the shared server to have a copy on their personal server.
Each client can submit changes to its respective personal server and then push changes to and fetch changes from the shared server. The distributed model with push and fetch of a subset of files:
The distributed model also supports a hybrid workflow that includes both centralized and distributed client-server relationships. This allows users both to share their work by connecting their individual server to a shared server, and to interact directly with a shared server. A hybrid configuration:
In addition,
Helix server
distributed versioning allows synchronization of content across multiple
offices or teams. You use the p4 fetch
and
p4 push
commands if the servers are networked or the
p4 zip
and p4 unzip
commands if
they’re not. See
"Managing Distributed Development" in
Helix Core Server Administrator Guide.