TortoiseSVN

A Subversion client for Windows

Version 1.8

Stefan Küng

Lübbe Onken

Simon Large

2013/06/21 18:05:43 (r24430)


Table of Contents

Preface
What is TortoiseSVN?
TortoiseSVN's Features
License
Development
TortoiseSVN's History
Acknowledgments
Reading Guide
Terminology used in this document
1. Getting Started
Installing TortoiseSVN
System requirements
Installation
Basic Concepts
Go for a Test Drive
Creating a Repository
Importing a Project
Checking out a Working Copy
Making Changes
Adding More Files
Viewing the Project History
Undoing Changes
Moving On ...
2. Basic Version-Control 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. 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
Server side hook scripts
Checkout Links
Accessing the Repository
4. Daily Use Guide
General Features
Icon Overlays
Context Menus
Drag and Drop
Common Shortcuts
Authentication
Maximizing Windows
Importing Data Into A Repository
Import
Import in Place
Special Files
Checking Out A Working Copy
Checkout Depth
Committing Your Changes To The Repository
The Commit Dialog
Change Lists
Commit only parts of files
Excluding Items from the Commit List
Commit Log Messages
Commit Progress
Update Your Working Copy With Changes From Others
Resolving Conflicts
File Conflicts
Property Conflicts
Tree Conflicts
Getting Status Information
Icon Overlays
Detailed Status
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
Current Working Copy Revision
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
Diffing Office Documents
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
Dealing with filename case conflicts
Repairing File Renames
Deleting Unversioned Files
Undo Changes
Cleanup
Project Settings
Subversion Properties
TortoiseSVN Project Properties
Property Editors
External Items
External Folders
External Files
Branching / Tagging
Creating a Branch or Tag
Other ways to create 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
Feature Branch Maintenance
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
Pruning Trees
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
Revision Graph Settings
Icon Overlay Settings
Network Settings
External Program Settings
Saved Data Settings
Log Caching
Client Side Hook Scripts
TortoiseBlame Settings
Advanced Settings
Exporting TSVN Settings
Final Step
5. The SubWCRev Program
The SubWCRev Command Line
Keyword Substitution
Keyword Example
COM interface
6. IBugtraqProvider interface
Naming conventions
The IBugtraqProvider interface
The IBugtraqProvider2 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 or folder
Include a common sub-project
Use svn:externals
Use a nested working copy
Use a relative location
Add the project to the repository
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
Tsvncmd URL handler
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. Language Packs and Spell Checkers
Language Packs
Spellchecker
Glossary
Index

List of Figures

1.1. The TortoiseSVN menu for unversioned folders
1.2. The Import dialog
1.3. File Difference Viewer
1.4. The Log Dialog
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
3.1. The TortoiseSVN menu for unversioned folders
4.1. Explorer showing icon overlays
4.2. Context menu for a directory under version control
4.3. Explorer file menu for a shortcut in a versioned folder
4.4. Right drag menu for a directory under version control
4.5. Authentication Dialog
4.6. The Import dialog
4.7. The Checkout dialog
4.8. The Commit dialog
4.9. The Commit Dialog Spellchecker
4.10. The Progress dialog showing a commit in progress
4.11. Progress dialog showing finished update
4.12. Explorer showing icon overlays
4.13. Explorer property page, Subversion tab
4.14. Check for Modifications
4.15. Commit dialog with Changelists
4.16. The Revision Log Dialog
4.17. The Revision Log Dialog Top Pane with Context Menu
4.18. The Code Collaborator Settings Dialog
4.19. Top Pane Context Menu for 2 Selected Revisions
4.20. The Log Dialog Bottom Pane with Context Menu
4.21. The Log Dialog Bottom Pane with Context Menu When Multiple Files Selected.
4.22. The Log Dialog Showing Merge Tracking Revisions
4.23. Commits-by-Author Histogram
4.24. Commits-by-Author Pie Chart
4.25. Commits-by-date Graph
4.26. Go Offline Dialog
4.27. The Compare Revisions Dialog
4.28. The image difference viewer
4.29. Explorer context menu for unversioned files
4.30. Right drag menu for a directory under version control
4.31. Explorer context menu for unversioned files
4.32. Explorer context menu for versioned files
4.33. Revert dialog
4.34. Subversion property page
4.35. Adding properties
4.36. Property dialog for hook scripts
4.37. Property dialog boolean user types
4.38. Property dialog state user types
4.39. Property dialog single-line user types
4.40. Property dialog multi-line user types
4.41. svn:externals property page
4.42. svn:keywords property page
4.43. svn:eol-style property page
4.44. tsvn:bugtraq property page
4.45. Size of log messages property page
4.46. Language property page
4.47. svn:mime-type property page
4.48. svn:needs-lock property page
4.49. svn:executable property page
4.50. Property dialog merge log message templates
4.51. The Branch/Tag Dialog
4.52. The Switch Dialog
4.53. The Merge Wizard - Select Revision Range
4.54. The Merge Wizard - Reintegrate Merge
4.55. The Merge Wizard - Tree Merge
4.56. The Merge Conflict Callback Dialog
4.57. The Merge reintegrate Dialog
4.58. The Locking Dialog
4.59. The Check for Modifications Dialog
4.60. The Create Patch dialog
4.61. The Annotate / Blame Dialog
4.62. TortoiseBlame
4.63. The Repository Browser
4.64. A Revision Graph
4.65. The Export-from-URL Dialog
4.66. The Relocate Dialog
4.67. The Bugtraq Properties Dialog
4.68. Example issue tracker query dialog
4.69. The Settings Dialog, General Page
4.70. The Settings Dialog, Context Menu Page
4.71. The Settings Dialog, Dialogs 1 Page
4.72. The Settings Dialog, Dialogs 2 Page
4.73. The Settings Dialog, Dialogs 3 Page
4.74. The Settings Dialog, Colours Page
4.75. The Settings Dialog, Revision Graph Page
4.76. The Settings Dialog, Revision Graph Colors Page
4.77. The Settings Dialog, Icon Overlays Page
4.78. The Settings Dialog, Icon Set Page
4.79. The Settings Dialog, Icon Handlers Page
4.80. The Settings Dialog, Network Page
4.81. The Settings Dialog, Diff Viewer Page
4.82. The Settings Dialog, Diff/Merge Advanced Dialog
4.83. The Settings Dialog, Saved Data Page
4.84. The Settings Dialog, Log Cache Page
4.85. The Settings Dialog, Log Cache Statistics
4.86. The Settings Dialog, Hook Scripts Page
4.87. The Settings Dialog, Configure Hook Scripts
4.88. The Settings Dialog, Issue Tracker Integration Page
4.89. The Settings Dialog, TortoiseBlame Page
4.90. Taskbar with default grouping
4.91. Taskbar with repository grouping
4.92. Taskbar with repository grouping
4.93. Taskbar grouping with repository color overlays
C.1. The commit dialog, showing the upgrade notification

List of Tables

2.1. Repository Access URLs
5.1. List of available command line switches
5.2. List of SubWCRev error codes
5.3. List of available keywords
5.4. 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