New Alternative Team Foundation Version Control Connector

Ivercy version 1.4.6 (beta) includes our new TfsEx alternative connector to Team Foundation Version Control.

Please note: This connector cannot be used to connect to Git repositories hosted on Azure DevOps. See our new Ivercy Git connector, if you want to use Git.

Originally, we had two major goals with this connector.

  1. Provide Team Foundation Version Control connectivity independent of Microsoft’s MSSCCI-Provider. (That provider depends on an existing Visual Studio 2013 installation. - Newer version do not work!
  2. Provide enhanced/extended (=”Ex” in TfsEx) functionality. Particularly support for Shelvesets was planned.

The first goal is achieved. Our TfsEx connector uses Microsoft’s Azure DevOps Services .NET client libraries for connectivity and is independent of the Microsoft MSSCCI API and any Visual Studio installation.

It is still recommended to have a Visual Studio installation on the computer to work with the source code control repository outside of Access. But any VS version will do and technically it is not required by Ivercy.

The work to implement more than basic functionality proved to be more ambitious than we originally anticipated. So, as of version 1.4.6 our TfsEx connector does not provide any additional functionality compared to the Microsoft MSSCCI-Provider. To the contrary, it is missing some functionality that is available in Microsoft’s provider. – See the two sections about limitations below, for details on the missing functionality.

System Requirements

The system requirements for the TfsEx connector are simple.

  • Client computer: Microsoft .NET Framework 4.6.2 or newer.
  • DevOps server: Azure DevOps Server 2019 or newer. – The connector may also work with older versions, but this is currently untested and not officially supported.

Installation

Besides the system requirements mentioned above, you only need to run the Ivercy setup to install the TfsEx connector.

If you install Ivercy for the first time, please select the feature “Team Foundation Version Control Connector” (=TfsEx) to be installed during the installation.

If you upgrade from a previous version of Ivercy, run the setup of version 1.4.6+ to upgrade the existing installation, which will not give you the option to install the TfsEx connector. After that installation completed, please run the setup again. Now the setup will show a maintenance screen where with the option “Add/Remove Features” to get to the feature selection to install the new connector.

Configuration

The first step is to adjust the Ivercy New Project Template configuration.

Section

Option

Value

Internal

SccProxyLibrary

ivercy.tfsex.dll

Workflow

ExcludeCheckedoutFromGetLatest

No (see comment below)

External Programs

DiffCommandline

(Depends on preferred program)

External Programs

MergeCommandline

(Depends on preferred program)

External Programs

MergeProgram

(Depends on preferred program)

 

 

 

ExcludeCheckedoutFromGetLatest

ExcludeCheckedoutFromGetLatest is set to “Yes” by default to reduce the risk of accidentally getting the repository version of a checked-out file and overwriting local changes in the process.

To resolve conflicts between your checked-out version of an object and the repository version detected by the TF-VC engine, you may need to explicitly fetch the repository version of a checked-out file and merge the conflicting file version in the process. This is only possible if ExcludeCheckedoutFromGetLatest is set to “No”.

Diff-/Merge Settings

You can use any diff-/merge-tool you like. Please refer to the documentation of your tool to find it’s command line arguments and then use our documentation on the configuration to write the command line settings in the Ivercy configuration.

Here is an example for vsDiffMerge, which is included with Visual Studio.

DiffCommandline: "{accFile}" "{baselineFile}"

MergeCommandline: /m "{accFile}" "{repoFile}" "{baselineFile}" "{outputFile}" "{accTitle}" "{repoTitle}" "" "{outputTitle}"

MergeProgram: "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\vsDiffMerge.exe"

The path to vsDiffMerge obviously depends on the version of Visual Studio you got installed. VS 2017 and later will put it in this path: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

Known Bugs and Short-Term Limitations

There are a couple of known problems with the current version of the TfsEx connector. We feel these are neither too severe to block us from releasing the connector nor to prevent you from using it in a production environment.

Show Differences - Limited options

Show Differences allows only to compare to the version of the same file last fetched from the repository or the current version in the repository now. You can compare to other versions of the same file from the repository but must manually enter their exact version number. Comparison of other local or repository files is not possible.

History View

  • “Affected files” does only show the file originally selected for the history, but it does not show any other file that was also included in the particular changeset displayed in the history.
  • “Get This Version” is currently not implemented.
  • “Rollback” is not implemented. – Use Visual Studio to rollback a changeset.

Work Item Queries – Error Messages

Some stored WorkItem queries do not work. They will raise an error and not display any results. In our own test environment this affects less than 20% of the queries. The problem is related to the structure of the individual queries, so the percentage of affected queries may be different for you.

Deliberate Long-Term Limitations

In addition to the bugs and problems listed above, there are a couple of deliberate limitations (compared to Microsoft’s MSSCCI-Provider for Team Foundation Version Control). These are features we deliberately omitted because we hardly ever saw someone using them or there is a tolerable workaround.

We are not planning to remove any of these limitations unless there is demand from Ivercy users for that. If you want or must use any of these missing features, please contact Ivercy Support.

Check-in Notes

Check-in Notes are not supported. If your repository expects a mandatory Check-in Note, the check-in will fail with an error. – Currently you cannot use the TfsEx connector if Check-in Notes are mandatory for your repository.

Do not confuse Check-in Notes with the plain comment text on check-in. Comments are supported, of course.

Check-In Policy Warnings

Detailed information on Check-In Policy Warnings is not available. If your check-in violates any defined policy, it will be rejected with an error message.

Conflict Resolution on Check-In

There is no Conflict resolution on check-in. If the Team Foundation versioning engine detects a conflict during check-in, the check-in will fail with an error message.

To resolve the conflict, use GetLatestVersion for the affected files and merge the conflicting changes in the process. After you resolved all conflicts, redo the check-in.