Version Control with SVK

This book is an incomplete draft. It is not yet the authoritative reference on svk. Be careful!

For SVK 1.04

(book compiled from Revision 120)

Michael L.H. Brouwer

Russell Brown

This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

»  mount boost wow service
»  If you want versatility in a WMV trimmer tool, choose SolveigMM Video Splitter


Table of Contents

How to Read this Book
Conventions Used in This Book
Typographic Conventions
Organization of This Book
This Book is Free
From Michael L.H. Brouwer
1. Introduction
What is SVK?
SVK's History
SVK's Features
SVK's Architecture
Installing SVK
SVK's Components
A Quick Start
2. Basic Concepts
The Depot
Versioning Models
The Problem of File-Sharing
The Lock-Modify-Unlock Solution
The Copy-Modify-Merge Solution
SVK in Action
Working Copies
How Working Copies Track the Depot
Mixed Revision Working Copies
Updates and Commits are Separate
Mixed revisions are normal
Mixed revisions are useful
Mixed revisions have limitations
3. Guided Tour
Revisions: Numbers, Keywords, and Dates, Oh My!
Revision Numbers
Revision Keywords
Revision Dates
Initial Checkout
Basic Work Cycle
Update Your Working Copy
Make Changes to Your Working Copy
Examine Your Changes
svk status
svk diff
svk revert
Resolve Conflicts (Merging Others' Changes)
Merging Conflicts by Hand
Resolving the changes
Discarding Your Changes
Discarding Changes Coming From the Depot
Punting: Using svk revert
Commit Your Changes
Examining History
svk log
svk diff
Examining Local Changes
Comparing Working Copy to Repository
Comparing Repository to Repository
svk cat
svk list
A Final Word on History
Other Useful Commands
svk cleanup
svk import
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
Common Use-Cases
Merging a Whole Branch to Another
Undoing Changes
Resurrecting Deleted Items
Common Branching Patterns
Release Branches
Feature Branches
Switching a Working Copy
Creating a Simple Tag
Creating a Complex Tag
Branch Maintenance
Repository Layout
Data Lifetimes
5. Repository Administration
6. Server Configuration
7. Advanced Topics
8. Developer Information
9. SVK Complete Reference
The SVK Command Line Client: svk
svk Switches
svk Subcommands
svk add
svk admin
svk annotate
svk cat
svk checkout
svk cleanup
svk cmerge
svk commit
svk copy
svk delete
svk depotmap
svk describe
svk diff
svk help
svk import
svk info
svk list
svk log
svk merge
svk mirror
svk mkdir
svk move
svk patch
svk propdel
svk propedit
svk propget
svk proplist
svk propset
svk pull
svk push
svk resolved
svk revert
svk smerge
svk status
svk switch
svk sync
svk update
svk verify
svk admin
svk admin Switches
svk admin Subcommands
svk admin create
svk admin deltify
svk admin dump
svk admin help
svk admin hotcopy
svk admin list-dblogs
svk admin list-unused-dblogs
svk admin load
svk admin lslocks
svk admin lstxns
svk admin recover
svk admin rmlocks
svk admin rmtxns
svk admin setlog
svk admin verify
svk admin rmcache
10. Depot Management
What is the depot?
Multiple depots
The default depot
Named depots
Why use multiple depots?
Why not use multiple depots?
General depot manipulation
Listing depots
Detaching depots
Relocating depots
Advanced depot administration
A. SVK for CVS Users
B. WebDAV and Autoversioning
C. Repository Administration
D. Copyright

List of Figures

1.1. SVK's Architecture
2.1. The problem to avoid
2.2. The lock-modify-unlock solution
2.3. The copy-modify-merge solution
2.4. The copy-modify-merge solution (continued)
2.5. The depot's filesystem
2.6. The depot
4.1. Branches of development
4.2. Starting depot layout
4.3. Depot with new copy
4.4. The branching of one file's history