Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Standard view
Full view
of .
Look up keyword or section
Like this

Table Of Contents

What Is Subversion?
Is Subversion the Right Tool?
Subversion's History
Subversion's Architecture
Subversion's Components
What's New in Subversion
How to Read This Book
Organization of This Book
This Book Is Free
Chapter 1. Fundamental Concepts
Version Control Basics
The Repository
Figure 1.1. A typical client/server system
The Working Copy
Versioning Models
The lock-modify-unlock solution
Figure 1.4. The copy-modify-merge solution
Version Control the Subversion Way
Subversion Repositories
Addressing the Repository
Table 1.1. Repository access URLs
Subversion Working Copies
Figure 1.7. The repository's filesystem
Chapter 2. Basic Usage
Getting Data into Your Repository
Importing Files and Directories
Recommended Repository Layout
What's In a Name?
Creating a Working Copy
Basic Work Cycle
Update Your Working Copy
Make Your Changes
Review Your Changes
Fix Your Mistakes
Resolve Any Conflicts
Commit Your Changes
Examining History
Examining the Details of Historical Changes
Generating a List of Historical Changes
Browsing the Repository
Fetching Older Repository Snapshots
Sometimes You Just Need to Clean Up
Disposing of a Working Copy
Recovering from an Interruption
Dealing with Structural Conflicts
An Example Tree Conflict
Chapter 3. Advanced Topics
Revision Specifiers
Revision Keywords
Revision Dates
Peg and Operative Revisions
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
Sparse Directories
The Three Meanings of “Lock”
Creating Locks
Discovering Locks
Breaking and Stealing Locks
Lock Communication
Externals Definitions
Creating and Modifying Changelists
Changelists As Operation Filters
Changelist Limitations
Network Model
Requests and Responses
Client Credentials
Chapter 4. Branching and Merging
What's a Branch?
Figure 4.1. Branches of development
Using Branches
Figure 4.2. Starting repository layout
Creating a Branch
Working with Your Branch
Figure 4.4. The branching of one file's history
The Key Concepts Behind Branching
Basic Merging
Merge Tracking
Keeping a Branch in Sync
Subtree Merges and Subtree Mergeinfo
Reintegrating a Branch
Mergeinfo and Previews
Mergeinfo Inheritance
Undoing Changes
Resurrecting Deleted Items
Advanced Merging
Merge Syntax: Full Disclosure
Merges Without Mergeinfo
Natural History and Implicit Mergeinfo
More on Merge Conflicts
Blocking Changes
Keeping a Reintegrated Branch Alive
Merge-Sensitive Logs and Annotations
Noticing or Ignoring Ancestry
Merges and Moves
Blocking Merge-Unaware Clients
Example 4.1. Merge-tracking gatekeeper start-commit hook script
The Final Word on Merge Tracking
Traversing Branches
Creating a Simple Tag
Creating a Complex Tag
Branch Maintenance
Repository Layout
Data Lifetimes
Common Branching Patterns
Release Branches
Feature Branches
Vendor Branches
General Vendor Branch Management Procedure
To Branch or Not to Branch?
Table 4.1. Branching and merging commands
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
Table 5.1. Repository data store comparison
Revision files and shards
Creating and Configuring Your Repository
Creating the Repository
Implementing Repository Hooks
Berkeley DB Configuration
FSFS Configuration
Repository Maintenance
An Administrator's Toolkit
Commit Log Message Correction
Managing Disk Space
Example 5.1. txn-info.sh (reporting outstanding transactions)
Berkeley DB Recovery
Migrating Repository Data Elsewhere
Repository data migration using svnadmin
Example 5.3. Mirror repository's start-commit hook script
Repository Backup
Managing Repository UUIDs
Moving and Removing Repositories
Chapter 6. Server Configuration
Table 6.1. Comparison of subversion server options
Choosing a Server Configuration
The svnserve Server
svnserve over SSH
The Apache HTTP Server
svnserve, a Custom Server
Invoking the Server
Example 6.1. A sample svnserve launchd job definition
Built-in Authentication and Authorization
Using svnserve with SASL
Tunneling over SSH
SSH Configuration Tricks
httpd, the Apache HTTP Server
Basic Apache Configuration
Authentication Options
Authorization Options
Example 6.2. A sample configuration for anonymous access
Example 6.3. A sample configuration for authenticated access
Example 6.4. A sample configuration for mixed authenticated/anonymous access
Example 6.5. Disabling path checks altogether
Protecting network traffic with SSL
Extra Goodies
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
Example 7.1. Sample registration entries (.reg) file
Configuration Options
Understanding Locales
Subversion's Use of Locales
Using External Editors
Using External Differencing and Merge Tools
External diff
External diff3
External merge
Chapter 8. Embedding Subversion
Layered Library Design
Repository Layer
Figure 8.2. Versioning time—the third dimension!
Repository Access Layer
Client Layer
Using the APIs
The Apache Portable Runtime Library
Functions and Batons
URL and Path Requirements
Using Languages Other Than C and C++
Code Samples
Example 8.1. Using the repository layer
Example 8.2. Using the repository layer with Python
Example 8.3. A Python status crawler
--targets FILENAME
--verbose (-v)
--with-revprop ARG
svn Subcommands
svnadmin—Subversion Repository Administration
svnadmin Options
--config-dir DIR
--fs-type ARG
svnadmin Subcommands
svnlook—Subversion Repository Examination
svnlook Options
--revision (-r)
svnlook Subcommands
svnsync—Subversion Repository Mirroring
svnsync Options
--revision (-r) ARG
--source-password PASSWD
--source-prop-encoding ARG
--source-username NAME
--sync-password PASSWD
--sync-username NAME
svnsync Subcommands
svnrdump—Remote Subversion Repository Data Mi- gration
svnrdump Options
--password PASSWD
--username NAME
svnrdump Subcommands
svnserve—Custom Subversion Server
svnserve Options
svndumpfilter—Subversion History Filtering
svndumpfilter Options
svndumpfilter Subcommands
mod_dav_svn—Subversion Apache HTTP Server Module
mod_authz_svn—Subversion Apache HTTP Author- ization Module
Subversion Properties
Versioned Properties
Unversioned Properties
Repository Hooks
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
Branches and Tags
Metadata Properties
Conflict Resolution
Binary Files and Translation
Versioned Modules
Converting a Repository from CVS to Subversion
Appendix C. WebDAV and Autoversioning
What Is WebDAV?
Client Interoperability
Table C.1. Common WebDAV clients
Standalone WebDAV Applications
File-Explorer WebDAV Extensions
WebDAV Filesystem Implementation
Appendix D. Copyright
0 of .
Results for:
No results containing your search query
P. 1


|Views: 24|Likes:
Published by Grozavu Dumitru

More info:

Categories:Types, School Work
Published by: Grozavu Dumitru on Aug 16, 2013
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





You're Reading a Free Preview
Pages 10 to 189 are not shown in this preview.
You're Reading a Free Preview
Pages 199 to 236 are not shown in this preview.
You're Reading a Free Preview
Pages 246 to 274 are not shown in this preview.
You're Reading a Free Preview
Pages 284 to 424 are not shown in this preview.
You're Reading a Free Preview
Pages 434 to 468 are not shown in this preview.

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->