The Merge plugin for Subversion enables Merge to access files located within a Subversion repository. It is included as a standard part of the Merge installation.
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
Merge needs to know the path to the svn
executable on your machine. This can be configured on the Application▸SCM settings page. It is recommended that you use the Subversion executable provided with macOS. This is usually /usr/bin/svn
.
Merge also needs credentials to access the Subversion servers that you use. Provide these on the Credentials settings 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, check the Include versions from SCM systems checkbox on the the Versions settings page.
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 username, 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 username jrs, and the password from that entry is used to make the connection.
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:wibble@localhost:3691/notepad/notepad.cpp |
Specifies the file /notepad/notepad.cpp located in the repository hosted on server localhost at port 3691 using the username jrs and password wibble . |
svn://jrs:*@localhost:3691/notepad/notepad.cpp |
As above, but specifying that Merge should use the relevant password from the Credentials settings 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 settings 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.