Version Control with Subversion

Ben Collins-Sussman

Brian W. Fitzpatrick

C. Michael Pilato


Foreword
Preface
What Is Subversion?
Audience
How to Read This Book
Organization of This Book
This Book Is Free
Acknowledgments
I. Getting to Know Subversion
1. Fundamental Concepts
Version Control Basics
Version Control the Subversion Way
Summary
2. Basic Usage
Help!
Getting Data into Your Repository
Creating a Working Copy
Basic Work Cycle
Examining History
Sometimes You Just Need to Clean Up
Dealing with Structural Conflicts
Summary
3. Advanced Topics
Revision Specifiers
Peg and Operative Revisions
Properties
File Portability
Ignoring Unversioned Items
Keyword Substitution
Sparse Directories
Locking
Externals Definitions
Changelists
Network Model
Working Without a Working Copy
Summary
4. Branching and Merging
What's a Branch?
Using Branches
Basic Merging
Advanced Merging
Traversing Branches
Tags
Branch Maintenance
Common Branching Patterns
Vendor Branches
To Branch or Not to Branch?
Summary
5. Repository Administration
The Subversion Repository, Defined
Strategies for Repository Deployment
Creating and Configuring Your Repository
Repository Maintenance
Moving and Removing Repositories
Summary
6. Server Configuration
Overview
Choosing a Server Configuration
svnserve, a Custom Server
httpd, the Apache HTTP Server
Path-Based Authorization
High-level Logging
Server Optimization
Supporting Multiple Repository Access Methods
7. Customizing Your Subversion Experience
Runtime Configuration Area
Localization
Using External Editors
Using External Differencing and Merge Tools
Summary
8. Embedding Subversion
Layered Library Design
Using the APIs
Summary
II. Subversion Command Reference
I. svn Reference—Subversion Command-Line Client
svn add
svn blame (praise, annotate, ann)
svn cat
svn changelist (cl)
svn checkout (co)
svn cleanup
svn commit (ci)
svn copy (cp)
svn delete (del, remove, rm)
svn diff (di)
svn export
svn help (h, ?)
svn import
svn info
svn list (ls)
svn lock
svn log
svn merge
svn mergeinfo
svn mkdir
svn move (mv)
svn patch
svn propdel (pdel, pd)
svn propedit (pedit, pe)
svn propget (pget, pg)
svn proplist (plist, pl)
svn propset (pset, ps)
svn relocate
svn resolve
svn resolved
svn revert
svn status (stat, st)
svn switch (sw)
svn unlock
svn update (up)
svn upgrade
II. svnadmin Reference—Subversion Repository Administration
svnadmin crashtest
svnadmin create
svnadmin deltify
svnadmin dump
svnadmin freeze
svnadmin help (h, ?)
svnadmin hotcopy
svnadmin list-dblogs
svnadmin list-unused-dblogs
svnadmin load
svnadmin lock
svnadmin lslocks
svnadmin lstxns
svnadmin pack
svnadmin recover
svnadmin rmlocks
svnadmin rmtxns
svnadmin setlog
svnadmin setrevprop
svnadmin setuuid
svnadmin unlock
svnadmin upgrade
svnadmin verify
III. svnlook Reference—Subversion Repository Examination
svnlook author
svnlook cat
svnlook changed
svnlook date
svnlook diff
svnlook dirs-changed
svnlook filesize
svnlook help (h, ?)
svnlook history
svnlook info
svnlook lock
svnlook log
svnlook propget (pget, pg)
svnlook proplist (plist, pl)
svnlook tree
svnlook uuid
svnlook youngest
IV. svnserve Reference—Custom Subversion Server
svnserve
V. svnversion Reference—Subversion Working Copy Version Info
svnversion
VI. svnsync Reference—Subversion Repository Mirroring
svnsync copy-revprops
svnsync help
svnsync info
svnsync initialize (init)
svnsync synchronize (sync)
VII. svnrdump Reference—Remote Subversion Repository Data Migration
svnrdump dump
svnrdump help
svnrdump load
VIII. svndumpfilter Reference—Subversion History Filtering
svndumpfilter exclude
svndumpfilter include
svndumpfilter help
IX. svnmucc Reference—Subversion Multiple URL Command Client
svnmucc
X. Subversion Repository Hook Reference
start-commit
pre-commit
post-commit
pre-revprop-change
post-revprop-change
pre-lock
post-lock
pre-unlock
post-unlock
III. Appendices
A. Subversion Quick-Start Guide
Installing Subversion
High-Speed Tutorial
B. Subversion for CVS Users
Revision Numbers Are Different Now
Directory Versions
More Disconnected Operations
Distinction Between Status and Update
Branches and Tags
Metadata Properties
Conflict Resolution
Binary Files and Translation
Versioned Modules
Authentication
Converting a Repository from CVS to Subversion
C. WebDAV and Autoversioning
What Is WebDAV?
Autoversioning
Client Interoperability
D. The Berkeley DB Legacy Filesystem
Configuring Your Berkeley DB Environment
Limitations of Berkeley DB
Maintaining Berkeley DB Repositories
E. Copyright
Index