Putting it all together

In the following diagram, Client 1 and Server 1 are running on the same machine and Client 2 and Server 2 are running on the same machine:

basic-dvcs

Server-to-server relationships

Server 1 and Server 2 are personal servers. Server 3 and Server 4 are shared servers.

Server 1 pushes changes to and fetches changes from Server 4. So does Server 2. Server 2 could fetch the changes Server 1 pushed, enabling the two personal servers to share content.

Shared servers 3 and 4 fetch and push changes from and to each other.

Client-to-server relationships

From the point of view of Client 1, Server 1 is a local server and Servers 3 and 4 are remote servers.

From the point of view of Client 2, Server 2 is a local server and Server 4 is a remote server.

Client 3 is interacting with Server 4 without an intervening personal server; the two servers are relating within a centralized architecture, rather than a distributed architecture.