Introduction
************

Pastwatch is a powerful version control system designed for users that need access to their repository at all times, where ever they might be. Pastwatch supports conventional version control operations like checkout, commit, update and diff.  Pastwatch also supports advanced functions like disconnected repository operations, good branching support and integrated backups.

Pastwatch users store a copy of their project on Aqua, a free hosting service for Pastwatch projects.  Aqua stores Pastwatch projects across many servers around the US so that the data will be highly available.

This manual explains how to get Pastwatch and start using it.  It also describes the most commonly used functions and the underlying version control model behind Pastwatch.

Features
========

  * Supports Traditional Version Control Features: Pastwatch provides all the basic version control functions like CVS such as checkout, update, commit, diff, etc.  Even its command line interface is similar to CVS.

  * Aqua Service: Aqua is a free hosting service for Pastwatch projects.  Pastwatch projects store a copy of their repository on Aqua, and Aqua makes sure that the repository is highly available.  Aqua is composed of many redundant servers, so even if there are host failures or network failures, Aqua will still be available.

  * Decentralized Architecture: Pastwatch does not rely on any single server to host the repository.  Pastwatch replicates a project's repository on each project member's computer, as well as on Aqua.  Even if some Aqua nodes or member computers become unavailable for any reason, the remaining Pastwatch users can continue to work without being affected.

  * Disconnected Operations: Pastwatch allows users to update and commit changes to the repository while they are disconnected from the network.  Pastwatch users have full access to the source repository while traveling and during network failures. Updates made while disconnected become visible when the user reconnects.

  * Fast Updates: Updating a user's working directory is fast because Pastwatch users only use the network to retrieve new changes.  The other operations like calculating diffs and patching files are completed locally.  Committing changes is also fast for the same reasons.

  * Integrated Peer Backup: The members of a software project cooperate with each other to automatically replicate the entire project repository.

  * Atomic Commits: Pastwatch commits are atomic.  Multiple files may be changed in a single commit.  Pastwatch makes sure that for each commit, either all or none of the changes will be visible to users.

  * CVS Conversion: Pastwatch comes with a convenient translator (cvs2past) that will translate a CVS repository into a Pastwatch repository while preserving the revision history.

Pastwatch Overview
==================

Pastwatch is similar to other version control systems in some ways and is quite different in other ways.

Pastwatch is similar because each version control project has a set of files and directories that are revision controlled.  Each Pastwatch project also has a set of members who are permitted to make changes to the project files.  Each project member keeps a working copy of the project files on his own computer.  To make changes to the project files, he edits his working copy and then commits his changes to the repository.  Pastwatch supports all the basic version control functions like checkout, update, commit, diff, etc.

Pastwatch is unique because it has a distributed architecture. Pastwatch replicates the repository on each of the project member's computers.  This is quite different from other systems because most other systems keep a single copy of the repository on a single server. The following figure illustrates the Pastwatch architecture.

Pastwatch replicates the repository on each of the project member's computers and also on the Aqua Service.  When a user commits a change to the repository, he first writes the change to his local replica and then propagates the change to Aqua.  When the other users update their working copies, Pastwatch first pulls new changes from Aqua and stores them in the user's replica.

Replicating the repository has several important benefits.  First, each user can always read and write to his copy of the repository, even while disconnected from the network or during network failures. Second, the repository data is automatically replicated on each member's computer.  It is not necessary to perform additional data backups.

The central replica is especially helpful because it performs two functions.  If the users always send their latest updates to the central replica, users can be confident that they will find the newest updates at the central replica.  The central replica serves as an anchor for all the replicas.  The central replica also serves as a distribution server; anonymous users can download the project files from the central replica.

The Aqua Service
================

The creators of Pastwatch provide the Aqua service.  Aqua is a free, reliable, storage service for Pastwatch projects.  We recommend using Aqua because it is reliable.  Aqua is both geographically distributed and its contents are replicated.

Please read 2.3 (this Manual), for instructions on using Aqua.

lajsdlfkajsdfl