Subversion File System Plugin

The Merge plugin for Subversion is included with Merge and enables Merge to access files located within a Subversion repository.

What you can do with the plugin

Using the plugin, you can (for example) perform a folder comparison to compare the Subversion repository against your local workspace. Alternatively, you could directly compare different branches (or the same branch at different points in time or at different revisions) within the repository. You could then launch file comparisons for any pairs of modified files that were of interest. This approach can work well for performing code reviews.

The plugin also enables Merge to populate the Versions button drop-down versions menu appropriately. For more information, see Comparing Text Files (or Typed/Pasted Text).

The plugin provides read-only access to the Subversion repository. To modify files within the repository, you will need to use one of the Subversion tools to open/edit/submit files.

Preparing Merge to use the plugin

The plugin requires the Subversion command-line client (svn.exe) to be installed and its containing directory present in the Windows system PATH environment variable.

Information Note that TortoiseSVN used to include svn.exe, but that is no longer the case. TortoiseSVN users will therefore need to get this file from one of the Windows binary downloads of Subversion itself, on the Subversion website.

Merge also needs credentials to access the Subversion servers that you use. Provide these on the Credentials options page. (For anonymous access to a Subversion server, add an entry for the server to the Credentials page with a blank User name and Password.)

Finally, if you wish Merge to populate the Versions button drop-down versions menu with any other revisions of the files or folders you are comparing, ensure that the Options…ApplicationShow file versions from SCM systems option is checked.

Using the Subversion plugin

To specify a file or folder within a Subversion repository, prefix the path to the repository file or folder with svn://server/ to form a URI.

A user name, password, and port number can be included in the URI, as shown in the examples below.

It is possible to use * as a password placeholder (e.g. svn://jrs:*@svn.example.com:3691/notepad/notepad.cpp). This prevents passwords appearing visibly on the screen. In this case, the server list is checked for an entry containing a server svn.example.com and a user name jrs, and the password from that entry is used to make the connection.

Information Repository access using the Subversion svn, svn+ssh, http, https and file protocols is supported. Prefix repository paths with svn:, svn+ssh:, svnhttp:, svnhttps: or svnfile:, respectively, to specify the desired protocol.

Examples

URI Description
svn://localhost/notepad Specifies the most recent version of the folder /notepad.
svn://localhost/notepad/notepad.cpp Specifies the most recent revision of the file /notepad/notepad.cpp.
svnfile:///path/to/notepad/notepad.cpp As above, but using the Subversion file protocol to access the most recent revision of the local repository file /path/to/notepad/notepad.cpp.
svn://localhost/notepad@{2000-03-23} Specifies the folder /notepad, as it was on 23 March 2000.
svn://localhost/notepad@23 Specifies the folder /notepad, as it was at revision 23.
svn://localhost/notepad/notepad.cpp@43 Specifies revision 43 of file /notepad/notepad.cpp.
svn://jrs:mypass@localhost:3691/notepad/notepad.cpp Specifies the file /notepad/notepad.cpp located in the repository hosted on server localhost at port 3691 using the user name jrs and password mypass.
svn://jrs:*@localhost:3691/notepad/notepad.cpp As above, but specifying that Merge should use the relevant password from the Credentials options page. This ensures that the password is not shown on the screen or within comparison reports.

Accessing files and folders already in your client workspace

If files or folders are already synced in your client workspace, you access them as you would any other file or folder on your hard disk. You do not need to use an svn:// URI to do so.

If the appropriate credentials have been configured on the Credentials options page, Merge will endeavour to populate the Versions button with any older revisions of the file you are comparing.

Integrating Merge with the Subversion command-line tools and graphical front-ends

Merge itself integrates well with Subversion. For more information, see Integrating with Source Control, Configuration Management and Other Applications.