TortoiseSVN
Next
TortoiseSVN
A Subversion client for Windows
Version 1.5.7
Stefan
Küng
Lübbe
Onken
Simon
Large
Table of Contents
Preface
Audience
Reading Guide
TortoiseSVN is free!
Community
Acknowledgments
Terminology used in this document
1. Introduction
What is TortoiseSVN?
TortoiseSVN's History
TortoiseSVN's Features
Installing TortoiseSVN
System requirements
Installation
Language Packs
Spellchecker
2. Basic Concepts
The Repository
Versioning Models
The Problem of File-Sharing
The Lock-Modify-Unlock Solution
The Copy-Modify-Merge Solution
What does Subversion Do?
Subversion in Action
Working Copies
Repository URLs
Revisions
How Working Copies Track the Repository
Summary
3. Setting Up A Server
Apache Based Server
Introduction
Installing Apache
Installing Subversion
Configuration
Multiple Repositories
Path-Based Authorization
Authentication With a Windows Domain
Multiple Authentication Sources
Securing the server with SSL
Using client certificates with virtual SSL hosts
Svnserve Based Server
Introduction
Installing svnserve
Running svnserve
Basic Authentication with svnserve
Better Security with SASL
Authentication with svn+ssh
Path-based Authorization with svnserve
4. The Repository
Repository Creation
Creating a Repository with the Command Line Client
Creating The Repository With TortoiseSVN
Local Access to the Repository
Accessing a Repository on a Network Share
Repository Layout
Repository Backup
Hook Scripts
Checkout Links
5. Daily Use Guide
Getting Started
Icon Overlays
Context Menus
Drag and Drop
Common Shortcuts
Authentication
Maximizing Windows
Importing Data Into A Repository
Import
Import in Place
Special Files
Referenced Projects
Checking Out A Working Copy
Checkout Depth
Committing Your Changes To The Repository
The Commit Dialog
Change Lists
Excluding Items from the Commit List
Commit Log Messages
Commit Progress
Update Your Working Copy With Changes From Others
Resolving Conflicts
Getting Status Information
Icon Overlays
TortoiseSVN Columns In Windows Explorer
Local and Remote Status
Viewing Diffs
Change Lists
Revision Log Dialog
Invoking the Revision Log Dialog
Revision Log Actions
Getting Additional Information
Getting more log messages
Merge Tracking Features
Changing the Log Message and Author
Filtering Log Messages
Statistical Information
Offline Mode
Refreshing the View
Viewing Differences
File Differences
Line-end and Whitespace Options
Comparing Folders
Diffing Images Using TortoiseIDiff
External Diff/Merge Tools
Adding New Files And Directories
Copying/Moving/Renaming Files and Folders
Ignoring Files And Directories
Pattern Matching in Ignore Lists
Deleting, Moving and Renaming
Deleting files and folders
Moving files and folders
Changing case in a filename
Dealing with filename case conflicts
Repairing File Renames
Deleting Unversioned Files
Undo Changes
Cleanup
Project Settings
Subversion Properties
TortoiseSVN Project Properties
Branching / Tagging
Creating a Branch or Tag
To Checkout or to Switch...
Merging
Merging a Range of Revisions
Reintegrate a branch
Merging Two Different Trees
Merge Options
Reviewing the Merge Results
Merge Tracking
Handling Conflicts during Merge
Merge a Completed Branch
Locking
How Locking Works in Subversion
Getting a Lock
Releasing a Lock
Checking Lock Status
Making Non-locked Files Read-Only
The Locking Hook Scripts
Creating and Applying Patches
Creating a Patch File
Applying a Patch File
Who Changed Which Line?
Blame for Files
Blame Differences
The Repository Browser
Revision Graphs
Revision Graph Nodes
Changing the View
Using the Graph
Refreshing the View
Exporting a Subversion Working Copy
Removing a working copy from version control
Relocating a working copy
Integration with Bug Tracking Systems / Issue Trackers
Adding Issue Numbers to Log Messages
Getting Information from the Issue Tracker
Integration with Web-based Repository Viewers
TortoiseSVN's Settings
General Settings
Icon Overlay Settings
Network Settings
External Program Settings
Saved Data Settings
Log Caching
Client Side Hook Scripts
TortoiseBlame Settings
Registry Settings
Subversion Working Folders
Final Step
6. The SubWCRev Program
The SubWCRev Command Line
Keyword Substitution
Keyword Example
COM interface
A. Frequently Asked Questions (FAQ)
B. How Do I...
Move/copy a lot of files at once
Force users to enter a log message
Hook-script on the server
Project properties
Update selected files from the repository
Roll back (Undo) revisions in the repository
Use the revision log dialog
Use the merge dialog
Use
svndumpfilter
Compare two revisions of a file
Include a common sub-project
Use svn:externals
Use a nested working copy
Use a relative location
Create a shortcut to a repository
Ignore files which are already versioned
Unversion a working copy
Remove a working copy
C. Useful Tips For Administrators
Deploy TortoiseSVN via group policies
Redirect the upgrade check
Setting the
SVN_ASP_DOT_NET_HACK
environment variable
Disable context menu entries
D. Automating TortoiseSVN
TortoiseSVN Commands
TortoiseIDiff Commands
E. Command Line Interface Cross Reference
Conventions and Basic Rules
TortoiseSVN Commands
Checkout
Update
Update to Revision
Commit
Diff
Show Log
Check for Modifications
Revision Graph
Repo Browser
Edit Conflicts
Resolved
Rename
Delete
Revert
Cleanup
Get Lock
Release Lock
Branch/Tag
Switch
Merge
Export
Relocate
Create Repository Here
Add
Import
Blame
Add to Ignore List
Create Patch
Apply Patch
F. Implementation Details
Icon Overlays
G. Securing Svnserve using SSH
Setting Up a Linux Server
Setting Up a Windows Server
SSH Client Tools for use with TortoiseSVN
Creating OpenSSH Certificates
Create Keys using ssh-keygen
Create Keys using PuTTYgen
Test using PuTTY
Testing SSH with TortoiseSVN
SSH Configuration Variants
Glossary
Index
List of Figures
2.1.
A Typical Client/Server System
2.2.
The Problem to Avoid
2.3.
The Lock-Modify-Unlock Solution
2.4.
The Copy-Modify-Merge Solution
2.5.
...Copy-Modify-Merge Continued
2.6.
The Repository's Filesystem
2.7.
The Repository
4.1.
The TortoiseSVN menu for unversioned folders
5.1.
Explorer showing icon overlays
5.2.
Context menu for a directory under version control
5.3.
Explorer file menu for a shortcut in a versioned folder
5.4.
Right drag menu for a directory under version control
5.5.
Authentication Dialog
5.6.
The Import dialog
5.7.
The Checkout dialog
5.8.
The Commit dialog
5.9.
The Commit Dialog Spellchecker
5.10.
The Progress dialog showing a commit in progress
5.11.
Progress dialog showing finished update
5.12.
Explorer showing icon overlays
5.13.
Check for Modifications
5.14.
Commit dialog with Changelists
5.15.
The Revision Log Dialog
5.16.
The Revision Log Dialog Top Pane with Context Menu
5.17.
Top Pane Context Menu for 2 Selected Revisions
5.18.
The Log Dialog Bottom Pane with Context Menu
5.19.
The Log Dialog Showing Merge Tracking Revisions
5.20.
Commits-by-Author Histogram
5.21.
Commits-by-Author Pie Chart
5.22.
Commits-by-date Graph
5.23.
The Compare Revisions Dialog
5.24.
The image difference viewer
5.25.
Explorer context menu for unversioned files
5.26.
Right drag menu for a directory under version control
5.27.
Explorer context menu for unversioned files
5.28.
Explorer context menu for versioned files
5.29.
Revert dialog
5.30.
Explorer property page, Subversion tab
5.31.
Subversion property page
5.32.
Adding properties
5.33.
The Branch/Tag Dialog
5.34.
The Switch Dialog
5.35.
The Merge Wizard - Select Revision Range
5.36.
The Merge Wizard - Reintegrate Merge
5.37.
The Merge Wizard - Tree Merge
5.38.
The Merge Conflict Callback Dialog
5.39.
The Merge reintegrate Dialog
5.40.
The Locking Dialog
5.41.
The Check for Modifications Dialog
5.42.
The Create Patch dialog
5.43.
The Annotate / Blame Dialog
5.44.
TortoiseBlame
5.45.
The Repository Browser
5.46.
A Revision Graph
5.47.
The Export-from-URL Dialog
5.48.
The Relocate Dialog
5.49.
Example issue tracker query dialog
5.50.
The Settings Dialog, General Page
5.51.
The Settings Dialog, Context Menu Page
5.52.
The Settings Dialog, Dialogs 1 Page
5.53.
The Settings Dialog, Dialogs 2 Page
5.54.
The Settings Dialog, Colours Page
5.55.
The Settings Dialog, Icon Overlays Page
5.56.
The Settings Dialog, Icon Set Page
5.57.
The Settings Dialog, Network Page
5.58.
The Settings Dialog, Diff Viewer Page
5.59.
The Settings Dialog, Diff/Merge Advanced Dialog
5.60.
The Settings Dialog, Saved Data Page
5.61.
The Settings Dialog, Log Cache Page
5.62.
The Settings Dialog, Log Cache Statistics
5.63.
The Settings Dialog, Hook Scripts Page
5.64.
The Settings Dialog, Configure Hook Scripts
5.65.
The Settings Dialog, Issue Tracker Integration Page
5.66.
The Settings Dialog, TortoiseBlame Page
C.1.
The upgrade dialog
List of Tables
2.1.
Repository Access URLs
3.1.
Apache
httpd.conf
Settings
6.1.
List of available command line switches
6.2.
List of available command line switches
6.3.
COM/automation methods supported
C.1.
Menu entries and their values
D.1.
List of available commands and options
D.2.
List of available options