Background threading in Ivercy 1.0.15
- Posted in:
- Ivercy
I wrote about the troubles with getting a stable implementation of background thread to work in Ivercy 1.0.15. The bottom line there was, it does not work with the MSSCCI-Provider for Team Foundation Server / Visual Studio Online and therefore it is disabled in that version except for some of the preparation work.
Background information
While the above is true, there is more to it.
There is a reason, we spotted the problem with the background threading only after the feature was mostly complete. We ourselves use SourceGear Vault as source code control system. And our implementation works flawless with it. We only discovered the issues with the TFS-MSSCCI-Client, as we put the first beta-release candidate through our QA process.
Depending on the SCC-Client, background threading actually works!
As most of our customers use Team Foundation Server, whose MSSCCI-Client does not work with multithreading, we consider our current implementation flawed and disabled it in the current beta. Still we did not remove feature from source code, but added a hidden configuration option to disable it (partially). This configuration option is not visible in the options dialog in the UI, but it can be changed by editing the _IvercyConfig.xml-File with any text editor.
You can enable background threading in Ivercy 1.0.15 by editing the config file.
Undocumented option StatusUpdatesInBackground
If you want to experiment with this setting, you can open the configuration file and edit the StatusUpdatesInBackground-Option. To do that, look for this line
<StatusUpdatesInBackground>PrepareOnly</StatusUpdatesInBackground>
The value there is PrepareOnly with a fresh installations of Ivercy 1.0.15 or None after the upgrade of an existing installation. You can replace the option value with any of the values listed below.
Here is a short info on the available options.
Option value |
Description |
None |
This will completely disable any multithreading and is the safest option value. Works with: All supported SCC-systems/providers With this option value set, we consider the current beta release fit for production use. |
PrepareOnly |
Only the local change detection is run on a background thread. All SCC-operations run on the main thread. Works with: All supported source code control systems There have been some reports about memory leaks and total freezes of Access, which could be related to this option value. These are still unconfirmed and most of the time this should work without issues. |
AutomaticQueries |
The automatic SCC status updates run in a background thread. Works with: Sourcegear Vault (stable), TamTamSVN (basic test), PushOK-SVN-SCC (basic test) This option value does not work with the TFS-MSSCCI-Client |
AllNonExplicitQueries |
All SCC-Operations that were not explicitly initiated by the user run in a background thread. This includes the time consuming initialization of the project when you open the database file. Please note: Immediately after opening an Access file, all objects will display the green plus symbol of new files until the status query is complete. The correct icons will be displayed, as soon as the status update completes. – This is “by design” and not considered a bug. Works with: Sourcegear Vault (stable), TamTamSVN (basic test), PushOK-SVN-SCC (basic test) This option value does not work with the TFS-MSSCCI-Client |
Warning: Please take care when editing the Ivercy configuration file. If the file is invalid, Ivercy will not load properly.
If you try the beta release, I would love to hear your feedback!