• Version Control with Subversion
  • Table of Contents
  • Foreword
  • Preface
    • Audience
    • How to Read this Book
    • Conventions Used in This Book
      • Typographic Conventions
      • Icons
    • Organization of This Book
    • This Book is Free
    • Acknowledgments
      • From Ben Collins-Sussman
      • From Brian W. Fitzpatrick
      • From C. Michael Pilato
    • What is Subversion?
      • Subversion's History
      • Subversion's Features
      • Subversion's Architecture
      • Subversion's Components
  • Chapter 1. Fundamental Concepts
    • The Repository
    • Versioning Models
      • The Problem of File-Sharing
      • The Lock-Modify-Unlock Solution
      • The Copy-Modify-Merge Solution
    • Subversion in Action
      • Subversion Repository URLs
      • Working Copies
      • Revisions
      • How Working Copies Track the Repository
      • Mixed Revision Working Copies
        • Updates and Commits are Separate
        • Mixed revisions are normal
        • Mixed revisions are useful
        • Mixed revisions have limitations
    • Summary
  • Chapter 2. Basic Usage
    • Help!
    • Getting Data into your Repository
      • svn import
      • Recommended repository layout
    • Initial Checkout
      • Disabling Password Caching
      • Authenticating as a Different User
    • Basic Work Cycle
      • Update Your Working Copy
      • Make Changes to Your Working Copy
      • Examine Your Changes
        • See an overview of your changes
        • Examine the details of your local modifications
      • Undoing Working Changes
      • Resolve Conflicts (Merging Others' Changes)
        • Merging Conflicts by Hand
        • Copying a File Onto Your Working File
        • Punting: Using svn revert
      • Commit Your Changes
    • Examining History
      • Generating a list of historical changes
      • Examining the details of historical changes
        • Examining Local Changes
        • Comparing Working Copy to Repository
        • Comparing Repository to Repository
      • Browsing the repository
        • svn cat
        • svn list
      • Fetching older repository snapshots
    • Sometimes You Just Need to Cleanup
    • Summary
  • Chapter 3. Advanced Topics
    • Revision Specifiers
      • Revision Keywords
      • Revision Dates
    • Properties
      • Why Properties?
      • Manipulating Properties
      • Properties and the Subversion Workflow
      • Automatic Property Setting
    • File Portability
      • File Content Type
      • File Executability
      • End-of-Line Character Sequences
    • Ignoring Unversioned Items
    • Keyword Substitution
    • Locking
      • Creating locks
      • Discovering locks
      • Breaking and stealing locks
      • Lock Communication
    • Externals Definitions
    • Peg and Operative Revisions
    • Network Model
      • Requests and Responses
      • Client Credentials Caching
  • Chapter 4. Branching and Merging
    • What's a Branch?
    • Using Branches
      • Creating a Branch
      • Working with Your Branch
      • The Key Concepts Behind Branches
    • Copying Changes Between Branches
      • Copying Specific Changes
      • The Key Concept Behind Merging
      • Best Practices for Merging
        • Tracking Merges Manually
        • Previewing Merges
        • Merge Conflicts
        • Noticing or Ignoring Ancestry
        • Merges and Moves
    • Common Use-Cases
      • Merging a Whole Branch to Another
      • Undoing Changes
      • Resurrecting Deleted Items
      • Common Branching Patterns
        • Release Branches
        • Feature Branches
    • Traversing Branches
    • Tags
      • Creating a Simple Tag
      • Creating a Complex Tag
    • Branch Maintenance
      • Repository Layout
      • Data Lifetimes
    • Vendor branches
      • General Vendor Branch Management Procedure
      • svn_load_dirs.pl
    • Summary
  • Chapter 5. Repository Administration
    • The Subversion Repository, Defined
    • Strategies for Repository Deployment
      • Planning Your Repository Organization
      • Deciding Where and How to Host Your Repository
      • Choosing a Data Store
        • Berkeley DB
        • FSFS
    • Creating and Configuring Your Repository
      • Creating the Repository
      • Implementing Repository Hooks
      • Berkeley DB Configuration
    • Repository Maintenance
      • An Administrator's Toolkit
        • svnadmin
        • svnlook
        • svndumpfilter
        • svnsync
        • Berkeley DB Utilities
      • Commit Log Message Correction
      • Managing Disk Space
        • How Subversion saves disk space
        • Removing dead transactions
        • Purging unused Berkeley DB logfiles
      • Berkeley DB Recovery
      • Migrating Repository Data Elsewhere
      • Filtering Repository History
      • Repository Replication
      • Repository Backup
    • Summary
  • Chapter 6. Server Configuration
    • Overview
    • Choosing a Server Configuration
      • The svnserve Server
      • svnserve over SSH
      • The Apache HTTP Server
      • Recommendations
    • svnserve, a custom server
      • Invoking the Server
        • svnserve as Daemon
        • svnserve via inetd
        • svnserve over a Tunnel
        • svnserve as Windows Service
      • Built-in authentication and authorization
        • Create a 'users' file and realm
        • Set access controls
      • Tunneling over SSH
      • SSH configuration tricks
        • Initial setup
        • Controlling the invoked command
    • httpd, the Apache HTTP server
      • Prerequisites
      • Basic Apache Configuration
      • Authentication Options
        • Basic HTTP Authentication
        • SSL Certificate Management
      • Authorization Options
        • Blanket Access Control
        • Per-Directory Access Control
        • Disabling Path-based Checks
      • Extra Goodies
        • Repository Browsing
          • Proper MIME Type
          • Customizing the Look
          • Listing Repositories
        • Apache Logging
        • Other Features
    • Path-Based Authorization
    • Supporting Multiple Repository Access Methods
  • Chapter 7. Customizing Your Subversion Experience
    • Runtime Configuration Area
      • Configuration Area Layout
      • Configuration and the Windows Registry
      • Configuration Options
        • Servers
        • Config
    • Localization
      • Understanding locales
      • Subversion's use of locales
    • Using External Differencing Tools
      • External diff
      • External diff3
  • Chapter 8. Embedding Subversion
    • Layered Library Design
      • Repository Layer
      • Repository Access Layer
      • Client Layer
    • Inside the Working Copy Administration Area
      • The Entries File
      • Pristine Copies and Property Files
    • Using the APIs
      • The Apache Portable Runtime Library
      • URL and Path Requirements
      • Using Languages Other than C and C++
      • Code Samples
  • Chapter 9. Subversion Complete Reference
    • The Subversion Command Line Client: svn
      • svn Switches
      • svn Subcommands
        • svn add
        • svn blame
        • svn cat
        • svn checkout
        • svn cleanup
        • svn commit
        • svn copy
        • svn delete
        • svn diff
        • svn export
        • svn help
        • svn import
        • svn info
        • svn list
        • svn lock
        • svn log
        • svn merge
        • svn mkdir
        • svn move
        • svn propdel
        • svn propedit
        • svn propget
        • svn proplist
        • svn propset
        • svn resolved
        • svn revert
        • svn status
        • svn switch
        • svn unlock
        • svn update
    • svnadmin
      • svnadmin Switches
      • svnadmin Subcommands
        • svnadmin create
        • svnadmin deltify
        • svnadmin dump
        • svnadmin help
        • svnadmin hotcopy
        • svnadmin list-dblogs
        • svnadmin list-unused-dblogs
        • svnadmin load
        • svnadmin lslocks
        • svnadmin lstxns
        • svnadmin recover
        • svnadmin rmlocks
        • svnadmin rmtxns
        • svnadmin setlog
        • svnadmin verify
    • svnlook
      • svnlook Switches
      • svnlook Subcommands
        • svnlook author
        • svnlook cat
        • svnlook changed
        • svnlook date
        • svnlook diff
        • svnlook dirs-changed
        • svnlook help
        • svnlook history
        • svnlook info
        • svnlook lock
        • svnlook log
        • svnlook propget
        • svnlook proplist
        • svnlook tree
        • svnlook uuid
        • svnlook youngest
    • svnserve
      • svnserve Switches
    • svnversion
      • svnversion
    • mod_dav_svn
      • mod_dav_svn Configuration Directives
    • Subversion properties
      • Versioned Properties
      • Unversioned Properties
    • Repository Hooks
      • start-commit
      • pre-commit
      • post-commit
      • pre-revprop-change
      • post-revprop-change
      • pre-lock
      • post-lock
      • pre-unlock
      • post-unlock
  • Appendix A. Subversion Quick-Start Guide
    • Installing Subversion
    • High-speed Tutorial
  • Appendix B. Subversion for CVS Users
    • Revision Numbers Are Different Now
    • Directory Versions
    • More Disconnected Operations
    • Distinction Between Status and Update
      • Status
      • Update
    • Branches and Tags
    • Metadata Properties
    • Conflict Resolution
    • Binary Files and Translation
    • Versioned Modules
    • Authentication
    • Converting a Repository from CVS to Subversion
  • Appendix C. WebDAV and Autoversioning
    • What is WebDAV?
    • Autoversioning
    • Client Interoperability
      • Standalone WebDAV applications
        • Microsoft Office, Dreamweaver, Photoshop
        • Cadaver, DAV Explorer
      • File-explorer WebDAV extensions
        • Microsoft Web Folders
        • Nautilus, Konqueror
      • WebDAV filesystem implementation
        • WebDrive, NetDrive
        • Mac OS X
        • Linux davfs2
  • Appendix D. Third Party Tools
  • Appendix E. Copyright
  • Index