Category: Version Control

Mercurial: The Definitive Guide

My image
  • Author: Bryan O’Sullivan
  • Format: online HTML
  • Price: free ($39.99 for paperback version)

This instructive book takes you step by step through ways to track, merge, and manage both open source and commercial software projects with Mercurial, using Windows, Mac OS X, Linux, Solaris, and other systems. Mercurial is the easiest system to learn when it comes to distributed revision control, ideal whether you’re a lone programmer working on a small project, or part of a huge team dealing with thousands of files. This book offers concrete suggestions to get you started.

Chapters include:

  • How did we get here?
  • A tour of Mercurial: the basics
  • A tour of Mercurial: merging work
  • Behind the scenes
  • Mercurial in daily use
  • Collaborating with other people
  • File names and pattern matching
  • Managing releases and branchy development
  • Finding and fixing mistakes
  • Handling repository events with hooks
  • Customizing the output of Mercurial
  • Managing change with Mercurial Queues
  • Advanced uses of Mercurial Queues
  • Adding functionality with extensions
  • Migrating to Mercurial
  • Mercurial Queues reference
  • Installing Mercurial from source

Pro Git

  • Author: Scott Chacon
  • Format: online HTML, PDF, EPUB, MOBI
  • Price: free

Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.
This book is for all open source developers: you are bound to encounter it somewhere in the course of your working life. Proprietary software developers will appreciate Git’s enormous scalability, since it is used for the Linux project, which comprises thousands of developers and testers.
Chapters include:

  • About Version Control
  • A Short History of Git
  • Git Basics
  • Installing Git
  • First-Time Git Setup
  • Getting Help
  • Getting a Git Repository
  • Recording Changes to the Repository
  • Viewing the Commit History
  • Undoing Things
  • Working with Remotes
  • Tagging
  • Tips and Tricks
  • What a Branch Is
  • Basic Branching and Merging
  • Branch Management
  • Branching Workflows
  • Remote Branches
  • Rebasing
  • The Protocols
  • Getting Git on a Server
  • Generating Your SSH Public Key
  • Setting Up the Server
  • Public Access
  • GitWeb
  • Gitosis
  • Gitolite
  • Git Daemon
  • Hosted Git
  • Distributed Workflows
  • Contributing to a Project
  • Maintaining a Project
  • Revision Selection
  • Interactive Staging
  • Stashing
  • Rewriting History
  • Debugging with Git
  • Submodules
  • Subtree Merging
  • Git Configuration
  • Git Attributes
  • Git Hooks
  • An Example Git-Enforced Policy
  • Git and Subversion
  • Migrating to Git
  • Plumbing and Porcelain
  • Git Objects
  • Git References
  • Packfiles
  • The Refspec
  • Transfer Protocols
  • Maintenance and Data Recovery

Read: Pro Git


Subversion Version Control: Using the Subversion Version Control System in Development Projects

My image
  • Author: William Nagel
  • Format: online PDF (print edition available at
  • Price: free (print edition $24.30)

In any software development project, many developers contribute changes over a period of time. Using a version control system to track and manage these changes is vital to the continued success of the project. This book introduces you to Subversion, a free, open-source version control system, which is both more powerful and much less complex than its predecessor CVS.

In this practical, hands-on guide, you will learn how to use Subversion and how to effectively merge a version control system within your development process. As a seasoned Subversion user, William Nagel draws on lessons learned through trial and error, providing useful tips for accomplishing tasks that arise in day-to-day software development.

Nagel clearly explains how to expand on the built-in abilities of Subversion, making the system work better for you. He organizes Subversion commands by activity to allow for quick task reference. Using example scripts and configurations, he also includes development approaches that you can customize to fit your own environment.

Chapters include:

  • An Introduction to Version Control
  • An Introduction to Subversion
  • Installing Subversion
  • Basic Subversion Usage
  • Working with a Working Copy
  • Using Properties
  • Configuring the Client
  • Integrating with Other Tools
  • Organizing Your Repository
  • Administrating the Repository
  • The Joy of Automation
  • Development Process Policies
  • Integrating SVN with the Development Process
  • Case Studies in Development Processes
  • Command Reference