TortoiseSVN (bin)

TortoiseSVN

A Subversion client for Windows

Version 1.8

Stefan K�ng

L�bbe Onken

Simon Large

2013/11/11 21:33:57 (r24944)


Table of Contents

Preface
1. What is TortoiseSVN?
2. TortoiseSVN's Features
3. License
4. Development
4.1. TortoiseSVN's History
4.2. Acknowledgments
5. Reading Guide
6. Terminology used in this document
1. Getting Started
1.1. Installing TortoiseSVN
1.1.1. System requirements
1.1.2. Installation
1.2. Basic Concepts
1.3. Go for a Test Drive
1.3.1. Creating a Repository
1.3.2. Importing a Project
1.3.3. Checking out a Working Copy
1.3.4. Making Changes
1.3.5. Adding More Files
1.3.6. Viewing the Project History
1.3.7. Undoing Changes
1.4. Moving On ...
2. Basic Version-Control Concepts
2.1. The Repository
2.2. Versioning Models
2.2.1. The Problem of File-Sharing
2.2.2. The Lock-Modify-Unlock Solution
2.2.3. The Copy-Modify-Merge Solution
2.2.4. What does Subversion Do?
2.3. Subversion in Action
2.3.1. Working Copies
2.3.2. Repository URLs
2.3.3. Revisions
2.3.4. How Working Copies Track the Repository
2.4. Summary
3. The Repository
3.1. Repository Creation
3.1.1. Creating a Repository with the Command Line Client
3.1.2. Creating The Repository With TortoiseSVN
3.1.3. Local Access to the Repository
3.1.4. Accessing a Repository on a Network Share
3.1.5. Repository Layout
3.2. Repository Backup
3.3. Server side hook scripts
3.4. Checkout Links
3.5. Accessing the Repository
4. Daily Use Guide
4.1. General Features
4.1.1. Icon Overlays
4.1.2. Context Menus
4.1.3. Drag and Drop
4.1.4. Common Shortcuts
4.1.5. Authentication
4.1.6. Maximizing Windows
4.2. Importing Data Into A Repository
4.2.1. Import
4.2.2. Import in Place
4.2.3. Special Files
4.3. Checking Out A Working Copy
4.3.1. Checkout Depth
4.3.1.1. Sparse Update using Update to Revision
4.3.1.2. Sparse Update using Repo Browser
4.3.1.3. Sparse Update using Check for Modifications
4.4. Committing Your Changes To The Repository
4.4.1. The Commit Dialog
4.4.2. Change Lists
4.4.3. Commit only parts of files
4.4.4. Excluding Items from the Commit List
4.4.5. Commit Log Messages
4.4.6. Commit Progress
4.5. Update Your Working Copy With Changes From Others
4.6. Resolving Conflicts
4.6.1. File Conflicts
4.6.2. Property Conflicts
4.6.3. Tree Conflicts
4.6.3.1. Local delete, incoming edit upon update
4.6.3.2. Local edit, incoming delete upon update
4.6.3.3. Local delete, incoming delete upon update
4.6.3.4. Local missing, incoming edit upon merge
4.6.3.5. Local edit, incoming delete upon merge
4.6.3.6. Local delete, incoming delete upon merge
4.6.3.7. Other tree conflicts
4.7. Getting Status Information
4.7.1. Icon Overlays
4.7.2. Detailed Status
4.7.3. TortoiseSVN Columns In Windows Explorer
4.7.4. Local and Remote Status
4.7.5. Viewing Diffs
4.8. Change Lists
4.9. Revision Log Dialog
4.9.1. Invoking the Revision Log Dialog
4.9.2. Revision Log Actions
4.9.3. Getting Additional Information
4.9.4. Getting more log messages
4.9.5. Current Working Copy Revision
4.9.6. Merge Tracking Features
4.9.7. Changing the Log Message and Author
4.9.8. Filtering Log Messages
4.9.9. Statistical Information
4.9.9.1. Statistics Page
4.9.9.2. Commits by Author Page
4.9.9.3. Commits by date Page
4.9.10. Offline Mode
4.9.11. Refreshing the View
4.10. Viewing Differences
4.10.1. File Differences
4.10.2. Line-end and Whitespace Options
4.10.3. Comparing Folders
4.10.4. Diffing Images Using TortoiseIDiff
4.10.5. Diffing Office Documents
4.10.6. External Diff/Merge Tools
4.11. Adding New Files And Directories
4.12. Copying/Moving/Renaming Files and Folders
4.13. Ignoring Files And Directories
4.13.1. Pattern Matching in Ignore Lists
4.14. Deleting, Moving and Renaming
4.14.1. Deleting files and folders
4.14.2. Moving files and folders
4.14.3. Dealing with filename case conflicts
4.14.4. Repairing File Renames
4.14.5. Deleting Unversioned Files
4.15. Undo Changes
4.16. Cleanup
4.17. Project Settings
4.17.1. Subversion Properties
4.17.1.1. svn:keywords
4.17.1.2. Adding and Editing Properties
4.17.1.3. Exporting and Importing Properties
4.17.1.4. Binary Properties
4.17.1.5. Automatic property setting
4.17.2. TortoiseSVN Project Properties
4.17.3. Property Editors
4.17.3.1. External Content
4.17.3.2. SVN Keywords
4.17.3.3. EOL Style
4.17.3.4. Issue Tracker Integration
4.17.3.5. Log Message Sizes
4.17.3.6. Project Language
4.17.3.7. MIME-type
4.17.3.8. svn:needs-lock
4.17.3.9. svn:executable
4.17.3.10. Merge log message templates
4.18. External Items
4.18.1. External Folders
4.18.2. External Files
4.19. Branching / Tagging
4.19.1. Creating a Branch or Tag
4.19.2. Other ways to create a branch or tag
4.19.3. To Checkout or to Switch...
4.20. Merging
4.20.1. Merging a Range of Revisions
4.20.2. Merging Two Different Trees
4.20.3. Merge Options
4.20.4. Reviewing the Merge Results
4.20.5. Merge Tracking
4.20.6. Handling Conflicts during Merge
4.20.7. Merge a Completed Branch
4.20.8. Feature Branch Maintenance
4.21. Locking
4.21.1. How Locking Works in Subversion
4.21.2. Getting a Lock
4.21.3. Releasing a Lock
4.21.4. Checking Lock Status
4.21.5. Making Non-locked Files Read-Only
4.21.6. The Locking Hook Scripts
4.22. Creating and Applying Patches
4.22.1. Creating a Patch File
4.22.2. Applying a Patch File
4.23. Who Changed Which Line?
4.23.1. Blame for Files
4.23.2. Blame Differences
4.24. The Repository Browser
4.25. Revision Graphs
4.25.1. Revision Graph Nodes
4.25.2. Changing the View
4.25.3. Using the Graph
4.25.4. Refreshing the View
4.25.5. Pruning Trees
4.26. Exporting a Subversion Working Copy
4.26.1. Removing a working copy from version control
4.27. Relocating a working copy
4.28. Integration with Bug Tracking Systems / Issue Trackers
4.28.1. Adding Issue Numbers to Log Messages
4.28.1.1. Issue Number in Text Box
4.28.1.2. Issue Numbers Using Regular Expressions
4.28.2. Getting Information from the Issue Tracker
4.29. Integration with Web-based Repository Viewers
4.30. TortoiseSVN's Settings
4.30.1. General Settings
4.30.1.1. Context Menu Settings
4.30.1.2. TortoiseSVN Dialog Settings 1
4.30.1.3. TortoiseSVN Dialog Settings 2
4.30.1.4. TortoiseSVN Dialog Settings 3
4.30.1.5. TortoiseSVN Colour Settings
4.30.2. Revision Graph Settings
4.30.2.1. Revision Graph Colors
4.30.3. Icon Overlay Settings
4.30.3.1. Icon Set Selection
4.30.3.2. Enabled Overlay Handlers
4.30.4. Network Settings
4.30.5. External Program Settings
4.30.5.1. Diff Viewer
4.30.5.2. Merge Tool
4.30.5.3. Diff/Merge Advanced Settings
4.30.6. Saved Data Settings
4.30.7. Log Caching
4.30.7.1. Cached Repositories
4.30.7.2. Log Cache Statistics
4.30.8. Client Side Hook Scripts
4.30.8.1. Issue Tracker Integration
4.30.9. TortoiseBlame Settings
4.30.10. Advanced Settings
4.30.11. Exporting TSVN Settings
4.31. Final Step
5. The SubWCRev Program
5.1. The SubWCRev Command Line
5.2. Keyword Substitution
5.3. Keyword Example
5.4. COM interface
6. IBugtraqProvider interface
6.1. Naming conventions
6.2. The IBugtraqProvider interface
6.3. The IBugtraqProvider2 interface
A. Frequently Asked Questions (FAQ)
B. How Do I...
B.1. Move/copy a lot of files at once
B.2. Force users to enter a log message
B.2.1. Hook-script on the server
B.2.2. Project properties
B.3. Update selected files from the repository
B.4. Roll back (Undo) revisions in the repository
B.4.1. Use the revision log dialog
B.4.2. Use the merge dialog
B.4.3. Use svndumpfilter
B.5. Compare two revisions of a file or folder
B.6. Include a common sub-project
B.6.1. Use svn:externals
B.6.2. Use a nested working copy
B.6.3. Use a relative location
B.6.4. Add the project to the repository
B.7. Create a shortcut to a repository
B.8. Ignore files which are already versioned
B.9. Unversion a working copy
B.10. Remove a working copy
C. Useful Tips For Administrators
C.1. Deploy TortoiseSVN via group policies
C.2. Redirect the upgrade check
C.3. Setting the SVN_ASP_DOT_NET_HACK environment variable
C.4. Disable context menu entries
D. Automating TortoiseSVN
D.1. TortoiseSVN Commands
D.2. Tsvncmd URL handler
D.3. TortoiseIDiff Commands
E. Command Line Interface Cross Reference
E.1. Conventions and Basic Rules
E.2. TortoiseSVN Commands
E.2.1. Checkout
E.2.2. Update
E.2.3. Update to Revision
E.2.4. Commit
E.2.5. Diff
E.2.6. Show Log
E.2.7. Check for Modifications
E.2.8. Revision Graph
E.2.9. Repo Browser
E.2.10. Edit Conflicts
E.2.11. Resolved
E.2.12. Rename
E.2.13. Delete
E.2.14. Revert
E.2.15. Cleanup
E.2.16. Get Lock
E.2.17. Release Lock
E.2.18. Branch/Tag
E.2.19. Switch
E.2.20. Merge
E.2.21. Export
E.2.22. Relocate
E.2.23. Create Repository Here
E.2.24. Add
E.2.25. Import
E.2.26. Blame
E.2.27. Add to Ignore List
E.2.28. Create Patch
E.2.29. Apply Patch
F. Implementation Details
F.1. Icon Overlays
G. Language Packs and Spell Checkers
G.1. Language Packs
G.2. 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 - Tree Merge
4.55. The Merge Conflict Callback Dialog
4.56. The Merge reintegrate Dialog
4.57. The Locking Dialog
4.58. The Check for Modifications Dialog
4.59. The Create Patch dialog
4.60. The Annotate / Blame Dialog
4.61. TortoiseBlame
4.62. The Repository Browser
4.63. A Revision Graph
4.64. The Export-from-URL Dialog
4.65. The Relocate Dialog
4.66. The Bugtraq Properties Dialog
4.67. Example issue tracker query dialog
4.68. The Settings Dialog, General Page
4.69. The Settings Dialog, Context Menu Page
4.70. The Settings Dialog, Dialogs 1 Page
4.71. The Settings Dialog, Dialogs 2 Page
4.72. The Settings Dialog, Dialogs 3 Page
4.73. The Settings Dialog, Colours Page
4.74. The Settings Dialog, Revision Graph Page
4.75. The Settings Dialog, Revision Graph Colors Page
4.76. The Settings Dialog, Icon Overlays Page
4.77. The Settings Dialog, Icon Set Page
4.78. The Settings Dialog, Icon Handlers Page
4.79. The Settings Dialog, Network Page
4.80. The Settings Dialog, Diff Viewer Page
4.81. The Settings Dialog, Diff/Merge Advanced Dialog
4.82. The Settings Dialog, Saved Data Page
4.83. The Settings Dialog, Log Cache Page
4.84. The Settings Dialog, Log Cache Statistics
4.85. The Settings Dialog, Hook Scripts Page
4.86. The Settings Dialog, Configure Hook Scripts
4.87. The Settings Dialog, Issue Tracker Integration Page
4.88. The Settings Dialog, TortoiseBlame Page
4.89. Taskbar with default grouping
4.90. Taskbar with repository grouping
4.91. Taskbar with repository grouping
4.92. 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

Table of Content:

          TortoiseSVN

                    Preface

                              What is TortoiseSVN?

                              TortoiseSVN's Features

                              License

                              Development

                                        TortoiseSVN's History

                                        Acknowledgments

                              Reading Guide

                              Terminology used in this document

                    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 ...

                    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

                    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

                    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

                                                  Sparse Update using Update to Revision

                                                  Sparse Update using Repo Browser

                                                  Sparse Update using Check for Modifications

                              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

                                                  Local delete, incoming edit upon update

                                                  Local edit, incoming delete upon update

                                                  Local delete, incoming delete upon update

                                                  Local missing, incoming edit upon merge

                                                  Local edit, incoming delete upon merge

                                                  Local delete, incoming delete upon merge

                                                  Other 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

                                                  Statistics Page

                                                  Commits by Author Page

                                                  Commits by date Page

                                        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

                                                  svn:keywords

                                                  Adding and Editing Properties

                                                  Exporting and Importing Properties

                                                  Binary Properties

                                                  Automatic property setting

                                        TortoiseSVN Project Properties

                                        Property Editors

                                                  External Content

                                                  SVN Keywords

                                                  EOL Style

                                                  Issue Tracker Integration

                                                  Log Message Sizes

                                                  Project Language

                                                  MIME-type

                                                  svn:needs-lock

                                                  svn:executable

                                                  Merge log message templates

                              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

                                        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

                                                  Issue Number in Text Box

                                                  Issue Numbers Using Regular Expressions

                                        Getting Information from the Issue Tracker

                              Integration with Web-based Repository Viewers

                              TortoiseSVN's Settings

                                        General Settings

                                                  Context Menu Settings

                                                  TortoiseSVN Dialog Settings 1

                                                  TortoiseSVN Dialog Settings 2

                                                  TortoiseSVN Dialog Settings 3

                                                  TortoiseSVN Colour Settings

                                        Revision Graph Settings

                                                  Revision Graph Colors

                                        Icon Overlay Settings

                                                  Icon Set Selection

                                                  Enabled Overlay Handlers

                                        Network Settings

                                        External Program Settings

                                                  Diff Viewer

                                                  Merge Tool

                                                  Diff/Merge Advanced Settings

                                        Saved Data Settings

                                        Log Caching

                                                  Cached Repositories

                                                  Log Cache Statistics

                                        Client Side Hook Scripts

                                                  Issue Tracker Integration

                                        TortoiseBlame Settings

                                        Advanced Settings

                                        Exporting TSVN Settings

                              Final Step

                    The SubWCRev Program

                              The SubWCRev Command Line

                              Keyword Substitution

                              Keyword Example

                              COM interface

                    IBugtraqProvider interface

                              Naming conventions

                              The IBugtraqProvider interface

                              The IBugtraqProvider2 interface

                    Frequently Asked Questions (FAQ)

                    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

                    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

                    Automating TortoiseSVN

                              TortoiseSVN Commands

                              Tsvncmd URL handler

                              TortoiseIDiff Commands

                    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

                    Implementation Details

                              Icon Overlays

                    Language Packs and Spell Checkers

                              Language Packs

                              Spellchecker

                    Glossary