A Subversion client for Windows

Version 1.9

Stefan Küng

Lübbe Onken

Simon Large

2015/09/27 18:54:04 (r26833)

Table of Contents

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 Sparse Update using Update to Revision Sparse Update using Repo Browser 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 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
4.7. Getting Status Information
4.7.1. Icon Overlays
4.7.2. Detailed Status
4.7.3. Local and Remote Status
4.7.4. 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 Statistics Page Commits by Author Page 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 svn:keywords Adding and Editing Properties Exporting and Importing Properties Binary Properties Automatic property setting
4.17.2. TortoiseSVN Project Properties
4.17.3. 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
4.18. External Items
4.18.1. External Folders
4.18.2. External Files
4.18.3. Creating externals via drag and drop
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. 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 Issue Number in Text Box 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 Context Menu Settings TortoiseSVN Dialog Settings 1 TortoiseSVN Dialog Settings 2 TortoiseSVN Dialog Settings 3 TortoiseSVN Colour Settings
4.30.2. Revision Graph Settings Revision Graph Colors
4.30.3. Icon Overlay Settings Icon Set Selection Enabled Overlay Handlers
4.30.4. Network Settings
4.30.5. External Program Settings Diff Viewer Merge Tool Diff/Merge Advanced Settings
4.30.6. Saved Data Settings
4.30.7. Log Caching Cached Repositories Log Cache Statistics
4.30.8. Client Side Hook Scripts Issue Tracker Integration
4.30.9. TortoiseBlame Settings
4.30.10. TortoiseUDiff Settings
4.30.11. Exporting TSVN Settings
4.30.12. Advanced Settings
4.31. Final Step
5. Project Monitor
5.1. Adding projects to monitor
5.2. Monitor dialog
5.2.1. Main operations
6. The SubWCRev Program
6.1. The SubWCRev Command Line
6.2. Keyword Substitution
6.3. Keyword Example
6.4. COM interface
7. IBugtraqProvider interface
7.1. Naming conventions
7.2. The IBugtraqProvider interface
7.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
D.4. TortoiseUDiff 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

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. The Cleanup dialog
4.35. Subversion property page
4.36. Adding properties
4.37. Property dialog for hook scripts
4.38. Property dialog boolean user types
4.39. Property dialog state user types
4.40. Property dialog single-line user types
4.41. Property dialog multi-line user types
4.42. svn:externals property page
4.43. svn:keywords property page
4.44. svn:eol-style property page
4.45. tsvn:bugtraq property page
4.46. Size of log messages property page
4.47. Language property page
4.48. svn:mime-type property page
4.49. svn:needs-lock property page
4.50. svn:executable property page
4.51. Property dialog merge log message templates
4.52. The Branch/Tag Dialog
4.53. The Switch Dialog
4.54. The Merge Wizard - Select Revision Range
4.55. The Merge Wizard - Tree Merge
4.56. The Merge Conflict Callback Dialog
4.57. The Merge-All 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. The Settings Dialog, TortoiseUDiff Page
4.91. The Settings Dialog, Sync Page
4.92. Taskbar with default grouping
4.93. Taskbar with repository grouping
4.94. Taskbar with repository grouping
4.95. Taskbar grouping with repository color overlays
5.1. The edit project dialog of the project monitor
5.2. The main dialog of the project monitor
C.1. The commit dialog, showing the upgrade notification