0 Comments

Most Ivercy user do use Team Foundation Server version control as backend. This week we added some additional documentation on this combination.

Issues with TFS workspaces

The most frequent issues with Ivercy and TFS are related to messed-up folder mappings in the TFS workspace configuration. So we added an FAQ article explaining the cause of the issues and how to avoid trouble with TFS workspaces.

Rollback Changeset in TFS

I felt in the mood to record a video. A recent question on how to rollback changes on TFS is a topic than lends very well to be explained in a video.

I thought of it more as an experiment to do videos that are not limited to plain screen recordings but are enhanced with a bit of video footage of myself explaining the key points of the issue. So that’s what I tried to do.

I’m pretty pleased with resulting video so I published it on YouTube. You can watch how to rollback a changeset in TFS version control on YouTube or just start the embedded video below.

If you like this form of informational videos leave a comment or click the “Thumbs up” on YouTube.

0 Comments

Last weekend I pretty spontaneously decided to attend the Access Developers Conference (Access Entwickler Konferenz - AEK) in Düsseldorf, Germany.

I really enjoyed meeting and talking to all the other attendants. It is always nice to meet so many people in person I otherwise only interact with via email. Some of our customers were there as well, so I gathered some valuable feedback on Ivercy.

This year I haven’t had the time to commit to a full talk on the conferences main track. Still, I managed to hastily prepare a short talk for the more informal and much shorter evening sessions of the conference (AEK-Abend).

I did a short (11 Minutes) presentation on Branching and Merging with source code control to release bug fixes during longer development cycles. Just slides and theory, no demo. I recorded my presentation on video. You can watch it here; it is in German though!

The slides are available for download in PDF-Format as well.

If you are spontaneous and located in central Europe you can still register for the last AEK19 conference event for this year in Hannover, Germany on Oct. 15th/16th 2016.

1 Comments

Today I did a first time ever test of Ivercy with Dynamsoft SourceAnywhere and did a screen recording of it. We do not officially support SourceAnywhere yet. Still I wanted to check if there are any serious problems visible at first glance.

The test went very well. Except for a minor issue with the SCC status not being refreshed immediately after creating the Access database from the repository, everything was working perfectly fine.

This is my very first published screen recording ever. It was done unprepared and with hardly any script at all. So there are few Uhs and Ahs in there and the content could (should!) have been more concise. – Nevertheless, I think the resulting video helps getting an impression of Ivercy in action and of some simple steps in the source code control workflow.

So I published it. You can watch the video here.

I’ll probably do some more screen recordings of Ivercy in the future. What do you think?

0 Comments

Here is last Friday's newsletter. It was only sent to subscribers who indicated interest in beta releases.

Here we go:

New beta version out

We released the new beta version 1.1.04 yesterday and I’m really excited about it!

This was originally planned as bug fix release only. Some of those bug fixes were addressing issues when working with super huge databases (think 1000++ objects). While working on those bugs, we realized that only fixing the hard errors wouldn’t help much. The dreaded delay when opening a database would have made it still impossible to work with databases of that size.

The slow opening of databases has been reported frequently as the most critical pain-point with Ivercy. So we put some extra effort into finally addressing this issue. – I think we succeeded with it!

So if you want to try the new version, you can get if from our download page. (Scroll down for the beta versions.)

Please keep in mind: This is a beta release for now!

Reasons to use source code control

A small side note here: Last week I published the article 7 reasons to use source code control for Microsoft Access development on my private website.

0 Comments

After quite a long time we released a new beta version of Ivercy this week.

This is the first beta for the upcoming new 1.1 release. From now on we will not work on new features until the release of version 1.1. Instead we focus on fixing bugs now. And there is still is some work to do in that regard. In other words: We are feature complete for the next release.

What was planned

Today I would like to compare the features we planned back in October to what is actually in the current beta.

Back then, we declared three major objectives.

  1. Improve Performance
    • Optimize status management and reduce the number of queries to the SCC backend.
    • Move automatic status updates to a non-blocking background thread.
  2. Reduce the number of “false positive” change detections.
  3. Optionally exclude Data&Misc-Objects from source code control.

So let’s look at these one by one, and see what we’ve got.

What we’ve got

I’ll look at the sub items of primary objective first.

Optimize status management and reduce the number of queries to the SCC backend

We improved our internal state management, use Access’ Date Modified property (unfortunately it’s not reliable), cache our checksum calculation and remove every query to the SCC-Backend that was not absolutely necessary. - This all significantly improved performance of Refresh Status and most notable Get Latest.

Move automatic status updates to a non-blocking background thread

Oh boy. This played a major part in wrecking our original schedule. In theory implementing multithreading based on the .Net Framework should not be too difficult. - Reality was quite different.

Multithreading in a COM-Add-In is somewhat different than in normal .Net-WinForms-Applications. You’ll need to manage some of the COM references yourself, otherwise the host (Access) might crash on shutdown. Thread synchronization with the UI-Thread does not work reliably in the way you would expect. – And even thought we tried to work around that, I suspect there still is a problem in version 1.0.15 with that, as I observed some weird application freeze situations since its release.

An even more serious issue exists however with Microsoft’s TFS-MSSCCI-Provider. It reacts quite hostile, by un-initializing itself, if ever invoked by more than one thread from the same process. I don’t think we can solve this problem without some fundamental changes to Ivercy’s design.

As any further work on this would have delayed the new version even more, I decided to disable any multithreaded use of the SCC-Backend. For now we only do the local preparation work for Status Update in the background. That slightly improves the situation, by reducing the time the Access UI is blocked.

So back to the top objective…

Improve Performance

We certainly achieved a lot in that regard. Considering execution time, there is not much left we could have improved further. Still the intrusive, blocking automatic status updates remain. – For now. But the improvements we have got already are so useful, I did not want to withhold them from you any longer.

Reduce the number of “false positive” change detections

Those false positive change detections result from modifications Access makes to the sources automatically. So we added two new features to deal with those. The first one are the SourceProcessingSettings, which allow you to configure lines and blocks of code to remove from the source files and thus ignoring any automatic changes to them.

Second we made it possible to ignore case of the text in the source files. You can configure that with the IgnoreCaseModifications option.

By using these two new options, you can reduce false positives to almost none (see the article above for the limitations). So I think we fully delivered on this objective.

So remaining is the third objective.

Optionally exclude Data&Misc-Objects from source code control

So the answer to this is simple. It’s not implemented at all. We total dropped that from our list for now. In last months we received lots of support emails and feature requests about the first and second objective, but none about this one. So the decision was easy to defer this item to a later release. This makes the other two available sooner, as they provide value to more of our customers; to you.

Check out the beta

Ok that’s it for now. If you are curious check out the most recent beta from the download page (scroll down, the betas are below the regular releases). Version 1.0.15 seems to have an issue with freezing Access on occasion though. I will send out a newsletter as soon as we’ve got a more stable release.