I had a home network with two computers, consistent with my evolving concept of how many computers a person should have. (The third was a notebook. The fourth was now distributed, in pieces, across the universe.) I found it was convenient to have the second of those two computers take care of backup, construct reliable file indexes for searching, hold certain programs open, run certain batch files at regular intervals, and remain available for moments when the primary computer was doing maintenance or for some other reason was unavailable.
I was writing these words at one such moment. The primary computer had just become dysfunctional. And this was OK. I was able to turn to the secondary computer and keep on working, pretty much where I had left off, because I was using a synchronization program that kept the two computers in sync via ethernet cable.
Critique of GoodSync
Except that, unfortunately, now was the moment when my synchronization program became flaky. That program was GoodSync. More than a year earlier, I had examined reviews of synchronization programs and had chosen GoodSync over the others. I had purchased the pro version and worked through the details of setting it up.
During this year, I had found GoodSync largely suited to the task. There were two principal problems, one of which prompted my search for a replacement. That was the problem of licensing. GoodSync's representative told me that the license allowed me only two installations per year. The problem was that GoodSync could not be deactivated. So, in my setup, I installed it on the secondary computer, and used it to synchronize my laptop and my primary computer with the secondary computer. But if Windows became dysfunctional, or if my hard drive crashed, or for any other reason I had to reinstall GoodSync, that would count as one of my two permitted installations.
So I had already had one go-round with the GoodSync people about that. Now there was another licensing issue. They promised me that, since I had bought my copy within a certain timeframe, I would qualify for a free upgrade from version 8 to version 9. But when the time came, the licensing did not work. So at the moment when I was writing these words, I was looking at a notice that said this:
You have exceeded the Free version lmitations. To continue using GoodSync you should upgrade to GoodSync Pro version or reduce your jobs to 3 or files in a job to 100.But when I tried to activate, I got this:
FAILED: Our records indicate that you have only GoodSync 8 licenses in the order you specified, but you are trying to activate GoodSync 9, which requires a separate license.My options in this regard were to get on the phone and complain about the broken promise, go through the steps to uninstall version 9 and reinstall version 8, or buy an upgrade to version 9. I did contact them and get it sorted out. Possibly it was even my mistake in the first place. I was not fresh on the details when writing these notes. Point is, the matter might have been settled there, if it hadn't been for the second problem.
The second problem, which had been more persistently troublesome, was that GoodSync was a tremendous resource hog. It would interrupt or slow down my work very noticeably, to the point that the computer would become unusable and even unresponsive. I emailed them about this too. Their reply was that I should upgrade to version 9. I did that. But that didn't fix the problem. Version 9 did have an option, which may or may not have been present in version 8, to impose a "speed limit" on file copying. This was obviously not an ideal solution: it would slow things down when the computer was free, and it might not slow things down enough when the computer was busy. This would be one more thing I would have to tinker with, in hopes of finding the right value. Why not just have the kind of "smart" arrangement found in other programs, where it drops back to a slow jog or a standstill, depending on computer resource usage?
The slowdown problem was exacerbated by uncertainty as to how to get the damned thing to just stop when I was finally tired of waiting on it. Right-clicking the system tray icon would give me options to Stop All or Disable Auto Run. Disable Auto Run seemed to be only temporary. A while later, I would be sitting at the computer in a stupor, waiting for it to do something, and would then find that it had sneakily started doing auto synchronizations again. On the other hand, if I clicked Stop All, a long time could go by before I would think to check up on my supposedly automatic software. And Stop All did not work reliably anyway. More than once, I had to go into Task Manager (Ctrl-Alt-Del) and just kill GoodSync immediately.
Those were the big issues. There were some others. I didn't like that I couldn't get a clear indication of how long a job would be running. When a program does the same thing 20 times a day, eventually it would seemingly be able to give a pretty good estimate of how long it would take to complete a synchronization. I didn't like that GoodSync needed to distribute _gsdata_ folders all over my computer. I had looked on that as the price of progress, but for some reason those folders sometimes contained copies of files, which could lead to confusing and potentially disastrous results when doing a sweep for unnecessary duplicates or searching for the latest copy of a file. I didn't like that GoodSync was not able to keep computers synced on an up-to-the-moment basis. I would have thought that, with the aid of those _gsdata_ folders, the program would have been able to know, pretty quickly, when a file had been changed, and it would ordinarily seem pretty straightforward to get a copy of that file to the other machine. What I actually got, unfortunately, was a nearly constant hard drive workout on the secondary machine.
A Search for Alternatives
Since I was at this point of having to deal with license issues again, for the third or fourth time in the past 12 months, it occurred to me that it might make sense to see if I could find a better alternative. I had pretty good impressions of recommendations from Gizmo's Freeware, so I started with their list of Best PC Freeware. Their choice for best folder synchronization utility was PureSync. Oddly, Gizmo's link to a review of PureSync actually led to a November 2011 Gizmo article that named a different program, FreeFileSync, as the best free synchronizer. FreeFileSync didn't sound too good -- no autosync, among other things -- but the article did mention Allway Sync as a commercial alternative.
A search for these three (i.e., GoodSync, PureSync, and Allway Sync) led to an alternativeTo webpage listing a number of possibilities. Among those possibilities, I decided that a programmatic solution like rsync would not work for me, partly because I had not tended to devote the time needed to maintain command-line file management solutions, and partly because I wanted to be able to see what was being overwritten. I decided against using Beyond Compare, which I used and liked for backup verification purposes, because it did not seem to provide a suitably automated solution. The only other item that stood out, for me, among the alternativeTo entries was Microsoft SyncToy. I decided to reserve judgment on it for now. (For reasons of speed and reliability, I was looking solely at ethernet-capable tools.)
Seeking guidance, I looked back at the previous year's post, to see what comparison sources I had consulted then. This led to the "sync software" category at TopTenReviews and the "data transfer & sync software" category at CNET. MajorGeeks didn't have a sync category, and at Softpedia and elsewhere, sync software was mixed into a general category. The top six at TopTenReviews were Syncables 360, GoodSync, SugarSync, Laplink PCsync, ViceVersa, and Allway Sync. At CNET, filtering for Windows 7 programs, there were essentially two lists. First were the "sponsored" (i.e., bought) reviews. These were iffy: ViceVersa Pro got four stars from editors and users alike, but the sponsored BeyondSync got five stars from editors but only three stars from users. Otherwise, among programs most downloaded during the preceding week (so as to avoid some that may have been popular in the olden tymes), the only one of note seemed to be Allway Sync.
From those sources and from general browsing, certain names appeared to be emerging, including GoodSync, Allway, and ViceVersa. A search for comparisons of those three didn't yield obvious recent sources of insight. (Later, I would find a Wikipedia page that compared many programs on a number of features. It seemed to indicate that GoodSync was one of the most capable programs. I wasn't sure, at that point, whether a closer look at the other programs reviewed there would have yielded a different outcome for my purposes. My tentative conclusion from that webpage was that, along with the programs reviewed below, I probably would have looked at FreeFileSync.) The TopTenReviews comparison suggested that, in terms of features, the top six just listed were mostly competitive for my purposes, except for SugarSync. According to TopTenReviews, the top three (Syncables 360, GoodSync, and Laplink) pulled away from ViceVersa and Allway Sync in terms of ease of use, support, and documentation.
I looked at individual product reviews at Softpedia. There were some contrasts. GoodSync got 2.9 stars from 118 users. ViceVersa Free got 2.5 stars from 23 users. ViceVersa Plus got 3.0 stars from 25 users. ViceVersa Pro got 3.6 stars from 28 users. SugarSync got 3.1 stars from 25 users. Syncables Desktop got 1.6 stars from 3 users. Allway Sync got 3.3 stars from 112 users. BeyondSync got 3.2 stars from 11 users. There was no Softpedia entry for Laplink. In short, according to voters at Softpedia, the two leading programs were ViceVersa Pro and Allway Sync. The lackluster score given to GoodSync seemed to be relatively well based. That is, there seemed to be a fair number of confirming votes. I should mention that, in a presumably different class, Microsoft SyncToy averaged 3.9 stars from 54 voters. Of these programs, it appeared that Softpedia's editors rated only SyncToy. They gave it four stars.
I also checked program reviews at CNET. GoodSync got four stars from 654 user reviews, and four stars from editors. ViceVersa Plus got no votes; ViceVersa Free got 3.5 stars from 20 users; ViceVersa Pro got four stars from 30 users, and four stars from editors. SugarSync got five stars from editors, and 2.5 stars from 82 users. Syncables 360 got two stars from four users. Allway Sync got 3.5 stars from 53 users, and 4.5 stars from editors. BeyondSync got three stars from 14 users, and five stars from editors. Laplink had one star from one user. SyncToy got four stars from editors and 3.5 stars from 61 users. These results suggested that, for CNET users, the worst programs were Laplink, Syncables, and SugarSync, and the best programs were GoodSync and ViceVersa Pro, followed by ViceVersa Free, Allway Sync, and SyncToy. There was something odd about the fact that GoodSync got at least eight to ten times as many votes as the others. Again, there were suspicious discrepancies between the votes of editors and of users.
Overall, the reviews provided by these three sources -- TopTenReviews, Softpedia, and CNET -- were only somewhat consistent. Their sometime inconsistency may have been at least partly due to somewhat different target markets. At TopTenReviews, the good score for GoodSync was fairly compatible with the results at the other two sources, though the mediocre score at Softpedia was interesting. TopTenReviews' high ratings for Syncables and Laplink seemed incongruous. ViceVersa Pro and Allway Sync were in the top or second tier at all three sources. SyncToy was fairly highly rated by the two sites that reviewed it. Among the others, ViceVersa Free also seemed to be potentially worth a look.
Although Allway Sync had a free version, its license page indicated that that version had a limit of 40,000 files per month. Although I was not sure how that would be counted, it seemed likely that a couple of full backups per month would exceed that limit for many people. The pro version was available for $20, in comparison with $30 for GoodSync and $60 for ViceVersa Pro. I noticed that the CNET editors described Allway Sync as "one of the best tools we've tried." I decided to try it myself. Also, while I now saw that SyncToy had no scheduler, it appeared likely to be useful for some purposes, so I downloaded it too.
Microsoft SyncToy 2.1
I decided to start with SyncToy for two reasons: I believed it would be simple to install and run, and I figured it would probably be pretty severely limited, and could therefore be disposed of quickly. In other words, it seemed likely to be a handy tool to know about, for some purposes, but not my primary machine for keeping computers reliably synchronized.
The program's interface seemed pretty straightforward. Nonetheless, I ran a search for sources of guidance and insight. A How-to-Geek webpage said SyncToy would require me to set up a pair of folders that I wanted to synchronize, and would then ask me which kind of synchronization I desired. There were three options: Synchronize (copy and delete in both directions, between the two folders, so that the latest additions, changes, and deletions appeared on both), Echo (update the right folder so it matched the left), or Contribute (add to the right so that it contained everything on the left, but don't delete anything from the right). The How-to-Geek webpage went on to explain how SyncToy tasks could be automated through Windows Task Scheduler.
A discussion thread pointed out some limitations with SyncToy: no volume shadow copy, so locked files would not be copied (which also seemed to be the case with GoodSync); no way to back up your folder pairs, for reinstallation or for use on another computer, so they would all have to be recreated by hand; a nasty bug regarding timestamps when synchronizing NTFS to FAT drives. Hints to a potential solution for the folder pair backup issue appeared in another thread, discussing the possibility of creating folder pairs via command line.
The "What's New" section in SyncToy's internal help file suggested that SyncToy 2.1 might have resolved some or all of these issues. I ran another search and saw references to memory leaks and other bugs. A discussion thread contained indications of some dissatisfaction. I decided SyncToy was probably pretty good, but it was not the sort of limited but airtight and portable tool I had imagined. It was more like a contender for the role of primary synchronization tool. For that purpose, I had a sense that I would like Allway Sync more, so I turned in that direction.
For some reason, after that brief look at SyncToy, I started getting cold feet. A couple of days had passed since I had started the thread, and now, as I looked at alternatives to GoodSync, it seemed like I was getting myself into a lot of unnecessary hassle. This was probably due to two things. First, I was busy with other stuff and didn't want to deal with this at the time; and second, I was having an unrelated system issue that kept the secondary/server computer from seeing the primary/workstation computer.
I rebooted as an expression of my faith that this would make it all better. It didn't. I gave it a couple of hours and the let spiritual power of saying "to hell with it" do its magic. When I came back to my existential mess, computer B was seeing computer A. All was well with the world.
So I installed and ran Allway Sync -- an awkward name, by the way, referred to hereinafter as AS. AS had distinct Analyze and Synchronize passes, like GoodSync. I set it up to compare a folder on each machine. The interface was OK. I didn't like the huge chunk of real estate, at the top of the screen, devoted to nothing in particular, but found I could get rid of that with View > deselect Show Logo. As it was running its analyze pass, it suddenly gave me this:
script error, Unspecified error., URL:It offered to send an error report. I let it do that. I wasn't sure what effect the error might have on that comparison across two machines. There were 89 Important Messages. The brief messages provided -- "Questionable file (manual review recommended)" -- were not as informative as GoodSync's left/right comparison messages. I didn't like its interface. While I was poking around with it, I got another script error.
file:///C:/Program%20Files/Allway%20Sync/Skins/default/profileex.js, line: 5138.
I wasn't excited about Allway Sync. Blame it on them, blame it on me, but for whatever reason, I decided to keep looking.
Around this time, I came across the freeware WinMerge program. I hadn't seen much mention of it in TopTenReviews or other commercial sites. Wikipedia said the WinMerge project was currently dormant. The program's homepage indicated that the last stable version (2.12.4) had been released nearly three years earlier, in mid-2009. But Softpedia contained an "experimental" v. 2.13.20, uploaded in October 2010, rated 4.5 by 139 users, and CNET boasted installed and portable versions of a version 2.12.4 (4.5 stars, 29 votes).
Wikipedia's comparison of file comparison tools listed Beyond Compare but not GoodSync. I had purchased BC Pro. It had worked well for backup purposes, where I manually eyeballed what was going on. I hadn't wanted to use it for automated syncing of computers, which seemed to be a less critical operation in my system. (If GoodSync had been randomly losing stuff, I would have noticed it when I did my Beyond Compare backups. In other words, after some early watching and tinkering, I was comfortable with letting GoodSync keep the two computers aligned, taking only an occasional look at what it was doing.) I might have been more inclined to use Beyond Compare for that purpose if I had learned its scripting language, which might not have been that hard; but I had gotten started with GoodSync through a free trial, and just went ahead with that.
Based on the Wikipedia comparison, it now appeared that what I got for my money, in buying Beyond Compare rather than using the free WinMerge, was the ability to do three-way comparisons (which I never did) and possibly the ability to do scripting (Wikipedia drew a blank on that). WinMerge could not do "horizontal" something (that was all Wikipedia said: horizontal or vertical, and BC could do both). WinMerge would have given me a "moved lines" capability that Beyond Compare did not have. WinMerge did not have FTP support. These things did not seem crucial to me, though further research to verify what they meant would obviously have been advisable. But there was one real problem: WinMerge would not do CRC checks. Granted, I had not actually been doing those checks in GoodSync either. My reason was that GoodSync was already taking over my secondary computer; I could hardly bear the thought of making it even more demanding. But I did want that capability. It had been a while since memory or other system errors had noticeably corrupted numerous files, but I'd had that experience in the past, and preferred to have some warning if, perchance, one computer quietly began to wander off course.
Other programs mentioned above (e.g., Allway, SyncToy, Vice Versa) did not appear on the Wikipedia comparison list. It seemed I was getting into an application for which a program like Beyond Compare or WinMerge was designed, and at which it might not excel. For instance, the comparison did not include features, like scheduling and networking, that seemed essential for synchronizing computers.
Nonetheless, I decided to try the portable version of WinMerge. It was small, as befit a portable. I could see right away that we weren't going to be coddling anybody. Specifically, I couldn't figure out how to use it. It didn't have Beyond Compare's user-friendly buttons and menus. There were no tooltips, so I'd have to just learn what the various buttons meant.
There didn't seem to be a way to tell WinMerge to actually do anything. I went to its online help manual. The answer I was looking for was to go to File > Open. This would seem obvious in another kind of program, but here I wasn't looking to do anything with any particular file. I was looking for a way to compare folders. But now that I did take that route, I saw a dialog allowing me to compare folders. It was able to navigate to the other networked computer, so I compared the D:\Workspace folder on two different computers. WinMerge seemed to be doing this comparison very slowly. After a while, I saw that it had stalled on comparison of a particular item. It didn't name the item; it just said it was item no. 7115. That may have been a bug; when I killed it, I got a display showing 7142 items, which I think was the total number of items it had said it was comparing.
The WinMerge display was informative. I could set it to show only the items that were different. It was a plain-text display, without colors or graphics; but because it used the same tight font as Windows Explorer, with more narrowly spaced lines, it provided a lot more information per screenful than GoodSync did. It had a collapsible tree mode, like GoodSync. It was willing to generate a patch. I didn't know what that was, but apparently it meant a code patch. It seemed to be a way to help programmers offer suggestions that would improve WinMerge. There weren't any scheduling features, so it appeared that, for my purposes, I'd be learning how to write command-line scripts and running them through Windows Task Scheduler. But if I was going to do that, I thought it might make more sense to use Robocopy, which was already built into Windows.
In one of those uncanny cyclical events, exactly a year had passed since I had last worked with Robocopy. Robocopy was a command-line tool in Vista and Windows 7 (and possibly elsewhere).
Back then, I had set up batch files to run relatively simple Robocopy commands to make backups. A month later, I had tried to use Backup Maker instead, but that hadn't lasted long. By this point, both of these tools had fallen into disuse, because I didn't like the backup configuration they were giving me, and I was too busy with other stuff to revisit the question. I decided to revisit it now.
One thing I hadn't liked about Robocopy was that, every hour (or whenever), Windows Task Scheduler would pop up one of my old-style batch files to run my Robocopy script. It was inelegant; it was distracting. So I was interested in Robocopy front ends that might conceal the script execution. There seemed to be several such front ends: WinRoboCopy and Easy RoboCopy and Robocopy GUI and SH-Soft RoboCopy GUI and RichCopy, apparently a hybrid using some Robocopy and some other tools. RichCopy offered ways of fine-tuning a copying process, but they didn't seem relevant to me. When I ran across a critical report on RichCopy, I decided not to start with it. Among the others, Robocopy GUI seemed to have the best pedigree, being a Microsoft product like Robocopy.
The link for the Robocopy GUI download was confusingly described as a link to the code for the Technet article discussing it. I wasn't sure whether it was a link to the code for the article itself or was, rather, a link to the code (or, less nerdily and more accurately, the utility, including its accompaniments, e.g., User's Guide) discussed in the article. Anyway, somehow I managed to get the utility itself. I installed and ran the GUI. It was a concise little thing that you could not possibly use safely without the aid of a Robocopy guide or manual, or a preexisting knowledge of Robocopy. I say that because, for example, its Copy Options tab (one among seven available) included such options as /E and /ZB. What did these mean? The program did not say. It did have a Help > Robocopy User's Guide menu option that led to a 35-page Word document which I promptely PDFd. It seemed the principal value of the GUI would be to remind and organize, not really to reduce the need to understand Robocopy's options.
At this point, I started a separate post to discuss Robocopy options in detail. I also considered using something like Beyond Compare, which would allow checksum comparisons rather than Robocopy's relatively simpleminded and potentially incorrect comparison of dates and times. As noted in that other post, the main problem I was encountering, with both Robocopy and Beyond Compare (aside from the latter's sometime ability to bog down system processes), was that they weren't true automated synchronization solutions.
What I probably needed, for the checksum issue, was a distinct program that would do continual, low-priority background comparisons between the two computers, so as to distinguish files whose checksum inconsistency was accompanied by a change in file date and time (probably indicating a legitimate update of the file) from those whose checksums differed while timestamps remained the same (suggesting the possibility that one had become corrupt). Having this as a low-priority background function would allow this potentially resource-intensive file comparison function to run when the computer was not busy -- which, itself, would not necessarily be a good trait for a synchronizer. This background checksum comparison wouldn't ordinarily be an urgent function, though it could be an important one. I would be happy with a report, presented to me each morning, as to the results of checks during the last 24 hours, with links that would take me to individual files displaying expected and unexpected checksum inconsistencies. Ideally, such a stealth checker would (also, or perhaps instead) compare checksums against a database, which would be updated upon file creation or acquisition. In other words, as soon as I would PDF a Word document, this background tool would calculate and store that PDF's checksum, so as to facilitate future estimations of what had been happening to it (e.g., it had been subsequently edited in Acrobat, which would tend to indicate manual user verification and therefore an expected change in checksum).
Regarding the bogging-down of system resources, it seemed that, if I did find a way to use something like Robocopy, there was the question of how I could prevent the program from hogging system resources. There seemed to be two parts to this question: how do I detect that the computer is busy, and how do I slow Robocopy in that case? Or was there maybe one tool that would let me slow down designated processes when computer resource usage reached a certain level? This led to a separate inquiry. At this point, that inquiry had yielded the impressions that something like Process Hacker or Process Explorer might put the brakes on how heavily a program would draw upon system resources during busy times. Those tools hadn't been especially successful against GoodSync, but possibly GoodSync had been programmed to demand priority, in a way that would not be a problem with something like Robocopy.
There was also the question of how I could run a command-line tool like Robocopy unobtrusively. So far, I had used Robocopy in batch files that would pop up and require a manual click to get them out of the way. Not a huge problem, but when it occurs multiple times per hour for each of several partitions, it could get to be an irritant.
At this point, I was not finding good alternatives to GoodSync. The slowness problem seemed to become less pronounced, over the several days during which I was doing these investigations and writing up these notes. I wasn't sure if that was just because we had not again encountered a heavy load, or if GoodSync 9 had perhaps made a huge improvement over version 8.
My investigation had turned up numerous possible replacements. Among these, I had identified several programs with potential. The leading one would be WinMerge; and if that didn't work, I would try Microsoft SyncToy. I decided to give GoodSync 9 a while longer, to see if it continued to take over the secondary computer. In that event, I thought I might first make a renewed search for tools that would reliably slow down GoodSync during times when the machine was not idle.