Pastwatch: a distributed version control system

  • Authors:
  • Alexander Yip;Benjie Chen;Robert Morris

  • Affiliations:
  • MIT Computer Science and AI Laboratory;MIT Computer Science and AI Laboratory;MIT Computer Science and AI Laboratory

  • Venue:
  • NSDI'06 Proceedings of the 3rd conference on Networked Systems Design & Implementation - Volume 3
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Pastwatch is a version control system that acts like a traditional client-server system when users are connected to the network; users can see each other's changes immediately after the changes are committed. When a user is not connected, Pastwatch also allows users to read revisions from the repository, commit new revisions and share modifications directly between users, all without access to the central repository. In contrast, most existing version control systems require connectivity to a centralized server in order to read or update the repository. Each Pastwatch user's host keeps its own writable replica of the repository, including historical revisions. Users can synchronize their local replicas with each other or with one or more servers. Synchronization must handle inconsistency between replicas because users may commit concurrent and conflicting changes to their local replicas. Pastwatch represents its repository as a "revtree" data structure which tracks the relationships among these conflicting changes, including any reconciliation. The revtree also ensures that the replicas eventually converge to identical images after sufficient synchronization. We have implemented Pastwatch and evaluate it in a setting distributed over North America. We have been using it actively for more than a year. We show that the system is scalable beyond 190 users per project and that commit and update operations only take 2-4 seconds. Currently, five users and six different projects regularly use the system; they find that the system is easy to use and that the system's replication has masked several network and storage failures.