What's New in TortoiseSVN 1.8

TortoiseSVN 1.8 is a superset of all previous TortoiseSVN releases, and is considered the current stable and "best" release. Anything in earlier versions is also in 1.8, but 1.8 contains features and bugfixes not present in any earlier release.

This page describes only major changes. For a complete list of changes, you can check our commit logs and the list of issues for 1.8

Don't forget to check out all the changes in the Subversion library that also is now at version 1.8: all those changes are of course in TortoiseSVN as well. See the full list of changes in the Subversion 1.8 release notes.

Coloring for TortoiseBlame

Instead of just coloring the changes by age/revision, TortoiseBlame can now color the lines by author so it's easier to spot who changed which lines.

coloring in TortoiseBlame

Commit only parts of a file

When working on a task, it often happens that you find an issue with the surrounding code. Fixing that issue leads then to multiple tasks done in the same file, and therefore also to have multiple fixes/tasks done in one single commit.

To commit only the parts of the file that relate to one specific issue:

  1. in the commit dialog, right-click on file, choose "restore after commit"
  2. edit the file in e.g. TortoiseMerge: undo the changes that you don't want to commit yet
  3. save the file
  4. commit the file

After the commit is done, the original file is restored, containing all the changes you didn't commit yet.

TortoiseMerge

TortoiseMerge, the visual diff/merge tool that comes with TortoiseSVN has also a lot of improvements.

TortoiseMerge Ribbon
Ribbon UI
TortoiseMerge uses now a Ribbon instead of a plain toolbar for its commands.
Searching
new shortcuts to search (Ctrl+F3), better indication of search matches, only search the active view.
go to line
a new command to go to a specific line number.
inline diffs
inline diffs can be toggled on/off with a single button instead of going through the settings dialog
handling of UTF-32 files
TortoiseMerge can now handle files in UTF-32 encoding as well, and recognizes more EOL formats.

Repository Browser

An often requested feature for the Repository Browser was to list all the repositories that are offered via the SVNListParentPath directive. This is now possible: point the repository browser to the root url and it lists all the repositories.

SVNListParentPath

At the bottom of the Repository Browser dialog a summary is shown, indicating the number of files and folders and the currently shown folder.

There are also two new buttons to go back and forward, like in web browsers.

Third party libraries

When there are third party libraries stored in the working copy directly, i.e., not via the svn:externals property, then updating those is not quite easy.

Just copying over the new version will work of course, but if the new version has files removed, those files will still be in your working copy.

In version 1.8 TortoiseSVN offers an easier way to do this: just right-drag the folder with the new version of the library to the version stored in your working copy, then select SVN vendor branch here from the context menu.

TortoiseSVN then scans both directories, copies all new files, removes files that are not present anymore in the new version.

After TortoiseSVN updated the folder, all you have to do is commit the new version.

Progress dialog

The dialog that shows the progress of various operations now has a better indication of sections/grouping, for example when updating a working copy that has multiple externals set.

Each section/group is indicated by the first line shown in bold.

And as for updating externals: only those externals that pull down modifications are shown in the dialog. If an external hasn't changed then the dialog does not show any information for it. This reduces the no-information lines a lot, especially if you have a lot of externals set.

SubWCRev

SubWCRev also got a lot of improvements, the major ones are:

  • Files in UTF-16 encoding can be used as well, either as sources/templates or as target files as well.
  • A new option to specify an offset for the working copy revision. This is required in case your repository is at revisions > 65535 and you want to use the revision for the version resource: the Windows version resource numbers are only 16-bit, and in this situation you can specify a negative offset so the version resource number is below that 16-bit limit.
  • SubWCRev can detect unversioned files and/or folders. This is useful in case you want an error returned in your build in case you have such unversioned items in your working copy, indicating that you may have missed to add and commit those items.

Custom properties

If you're using custom properties, you can now configure TortoiseSVN to provide better dialogs to edit and modify them.

The properties tsvn:userfileproperties and tsvn:userdirproperties got extended so you can specify what kind of property you have.

Have a look at our docs on how this works.

Client hook scripts configurable via properties

In earlier versions you could only configure client-side hook scripts via the settings dialog. This worked ok if you only had a few workstations/users to configure. But if you wanted a big team of committers to all run the hook scripts you needed, this required a lot of work to set up.

In TortoiseSVN 1.8 you can now configure the hook scripts to run via project properties.

To avoid running potentially insecure scripts without the user knowing it, TortoiseSVN will ask to run those scripts first.

Have a look at our docs on how this works.

Compatibility concerns

Local Client Compatibility

Subversion working copies are sometimes accessed using several different clients, e.g. TortoiseSVN, AnkhSVN, and the svn command line client. Because the working copy format has changed with this release, 1.8 clients cannot access an earlier working copy without first upgrading it. Pre-1.8 clients cannot access 1.8 working copies at all and there is no downgrade option.

Migrating to 1.8 working copies must be considered a one-way operation. If you need to use multiple clients on the same working copy then be sure that you can update all the clients before upgrading the working copy.

Client Server Compatibility

Older clients and servers interoperate transparently with 1.8 servers and clients. That is to say, you can use a 1.8 client with an older server, and you can use a 1.8 server with older clients. However, some of the new 1.8 features may not be available unless both client and server are the latest version. There are also cases where a new feature will work but will run less efficiently if the client is new and the server old.

New Feature Compatibility Table

New Feature Minimum Client1 Minimum Server Minimum Repository Notes
working copy records moves 1.8 any any
automatic merging 1.8 1.5 1.5
neon support removed 1.8 any any Server-side configuration changes might be required for optimal performance with 1.8 clients which access the repository via HTTP.
Inheritable properties 1.8 any any A 1.8 server isn't required but will deliver superior performance when asked for inherited properties.
Repos dictated config props 1.8 any any
Authz file in repository any 1.8 any
1Reminder: when using the file:// repository access method, the Subversion program is both the client and the server.

Log Dialog

Log Dialog enhancements to help with code reviews

A new context menu 'Create code collaborator review' has been added to provide interoperability with the SmartBear Code Collaborator review tool.

Two new context menus and commands have been added to the log dialog when multiple files are selected in the bottom 'files changed' listbox.

  1. Show multiple changes...
  2. Open multiple local...

The details of how these commands work, which include special support for loading working copy files into Visual Studio can be found in the subversion help file under the topic 'Invoking the Revision Log Dialog'.