Migrating from SyncToy version 1.2 to 1.4

Posted: (EET/GMT+2)

 

I noticed that Microsoft had updated my favorite synchronization utility called SyncToy, which I use to synchronize my stuff with my external USB drives. SyncToy is now at version 1.4, and freely downloadable from their Download Center.

Previously, I had SyncToy 1.2 installed, so I wondered if there would be any migration (upgrade) problems. No instructions were given (or I didn't find them), so I just proceeded with the install. That went smoothly, even to the same directory as the previous install.

When I started SyncToy 1.4, all my previous folder pairs were intact, which was great. In fact, the folder pair settings are the most important data that SyncToy saves, and these settings are by default stored to (My) Documents\SyncToyData\SyncToyDirPairs.bin, which is a file you might want to back up as well. Another option is to simply take a screenshot of all your settings, which is easy to do, especially on Windows Vista with the new screen capture tool.

However, my initial feeling of success dismissed quickly, as pressing the "Preview All" button under "All Folder Pairs" simply did nothing. It didn't give any error messages either. I thought something had gone wrong in the installation, so I uninstalled SyncToy and installed it again. No help; the situation kept the same. I tried single folder pairs, but they failed as well. Then, I created a new folder pair, and it worked nicely.

Finally, I noticed the reason. SyncToy 1.2 allowed to use the backslash character (\) in folder pair names, which SyncToy 1.4 didn't anymore do. I didn't find a way to rename folder pairs (and I didn't want to edit the binary settings file, wish it'd been XML based instead), so I simply recreated them. Easy, but somewhat time-consuming, since I wanted to be sure my backups were not affected.

After the fact I also noticed error messages in the SyncToy log file, named "SyncToyLog.log" similar to these:

SYNC: 08/06/2007 21:34:46:687: *** System.IO.DirectoryNotFoundException:
Could not find a part of the path 'SYNCTOY_C:\Batch'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.Threading.Mutex.<>c__DisplayClass3.<.ctor>b__0(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(
  TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name,
  Boolean& createdNew, MutexSecurity mutexSecurity)
at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name)

Seems like SyncToy is creating a named Win32 mutex to help in thread synchronization, but that fails because of the illegal character in the folder pair name.

You might ask why on earth I did use backslashes on folder pair names in the first place? Since I used them to simply name the source directory (i.e. the left folder)! That was the easiest thing to do. Now I changed the backslashes to hyphens instead, and all is okay. Take this as your SyncToy migration crash course.

Keywords: Microsoft SyncToy, migration, update instructions, version 1.2 and version 1.4, photography, Windows XP ProPhoto.