Ivercy with Subversion and SharpSVN

This text does only apply to the most recent Ivercy versions with a version number of 1.3.* and higher. These are currently (as of March 2019) only available as beta releases.

Ivercy 1.3 has been internally redesigned to not only support the generic MSSCCI-Provider architecture, but also custom source code control connectors. The first custom connector we have created is a library to use the SharpSVN libraries to connect to Subversion.

Subversion connectivity via SharpSVN

Ivercy 1.3.* can optionally use the SharpSVN libraries to connect to Subversion. SharpSVN is free software licensed under an Apache 2.0 license and can be used even in commercial project free of charge.

The main benefit of using the SharpSVN connectivity is a huge performance improvement over most of the available Svn-MSSCCI-Providers. Depending on the actual MSSCCI-Provider you used before, you may see improved stability and simplified configuration as well.

In theory this should also allow the use of multi-byte characters in Access object names. Asian languages have been a problem with the MSSCCI-API. However, the behavior with multi-byte character sets has not been tested yet and was not in our focus.

Before switching your Subversion connectivity, you should make sure that there are no pending checkouts in any of your Subversion projects.

Download SharpSVN

If you want to use the new SharpSVN connectivity, please go to the SharpSVN-Download-Page and download the SharpSVN files suitable for your Subversion version.

You need to pay attention to your Subversion version! The first part of the version number (1.7, 1.8, 1.9) has to match the version of your Subversion infrastructure. If you used the PushOK-SNV-Connector previously, the correct version is most likely version 1.7.

Choose either the x86 or the x64 version appropriate for your Access installation. The bitness of your operation system is not relevant here. If you use 32bit Access, you should download the x86 files. - So far Ivercy has only been tested with the x86 version of SharpSVN.

Extract all the SharpSVN files right into the Ivercy program files directory. (Usually %localappdata%\Ivercy\Ivercy)

Adjust your Ivercy Config files

By default, Ivercy will still use the MSSCCI-API and you need to manually edit the Ivercy configuration file to change this behavior.

Switch the SccProxyLibrary

Open Ivercy’s global/template configuration file with a text editor. (IvercyConfig.xml in the directory %APPDATA%\Ivercy\Ivercy)

Add the line


to the configuration file.

Ivercy configuration settings for merge and diff

(To revert back to MSSCCI either delete this line or change the value to ivercy.msscci.dll.)

Diff- and MergeCommandline and tool

When using the MSSCCI-Connectivity, the whole Diff-Operation, including its configuration, is delegated to the MSSCCI-Provider. With the new SharpSVN connectivity, Ivercy needs to invoke the tool to diff or merge itself. So, you need to tell it where to find your Diff-Tool and how to invoke it.

There are three relevant settings in the Ivercy options configuration. These can be adjusted in the Ivercy configuration dialog.

DiffCommandLine – This one is new for SharpSVN support and not yet documented. It is just used to compare to files and supports only the two variables accFile and baselineFile.

MergeCommandline – This has been there in previous versions and will be used if conflicting edits are detected by Ivercy during a GetLatest-Command. It supports four variables.

  • accFile - The file your Access object is exported to. This is the local input file to the merge.
  • repoFile - The repository file that is the other input to the merge
  • baselineFile - The baseline file to the merge. Both input files will be compared to this file.
  • outputFile - This is the file the merge result will be written to and that will be processed after the merge.

The baselineFile is the latest copy of the file Ivercy retrieved before detecting local and repository changes.

MergeProgram – This is the path to your merge and diff tool.

Ivercy configuration settings for merge and diff

More information on the External Programs configuration section can be found in the documentation of Ivercy configuration files.

Re-Create your project from the repository

After adjusting the configuration files, you should re-create your project from the repository to a fresh local working folder.

Known Issues with Ivercy and SharpSVN

  • If you open an existing Access database that is connected to Subversion via MSSCCI while you have the SharpSVN-Connectivity configured for Ivercy this will result in an error and can crash Access. - To avoid this, you need to make sure that your global/template IvercyConfig.xml has the matching SccProxyLibrary configured for your project(s).

  • There is one issue affecting the compatibility with previous versions.

    Ivercy uses uppercase file extensions for all files. In previous versions there was a bug that caused the Data&Misc-Objects-File being saved with a lower case extension (.acd/.acb/.acp). This bug is fixed in this new version.

    Unfortunately, Subversion treats file names case sensitive. If you have got an existing project the Data&Misc-Objects might display an incorrect SCC-Status and cannot be checked-in/-out.

    This can be fixed by changing the .acd-file to have an upper case extension, but this will result in similar issues, when the project is opened with a previous version of Ivercy.

  • Other than the MSSCCI-Provider, SharpSVN does not come with a full set of GUI components. So, we needed to create UI forms to enter Subversion connection details, display the history, and display file properties. – These forms are very crude only, not user friendly, and provide only the most basic functionality.

    This will be improved in a future release.

  • SSL certificates are not verified. Currently Ivercy/SharpSVN will accept any SSL certificate supplied by your Subversion server. - Including, but not limited to, expired certificates, certificates not matching the host name, and certificates from non-trusted authorities.

    To be clear: SSL-Encryption is still applied to the connection, but the verification of the identity of the counterparty is not enforced.