Start

Working with the application

Comparing two Folders or Volumes

Basic Operation

Sync Checker can compare any two folders, or file sets which behave like folders. You only need to specify which folders you like to compare, and how accurate the comparison should be. Perform the following steps to initiate a sync check operation:

  1. Ensure that macOS can access the two file sets which should be compared. When the files are located on external media or network file server, attach the media, or use the Finder to connect to the server, respectively.
  2. Drag the first top folder you like to check from the Finder into the upper field at Compare the following folders, disk volumes, or Sync Checker Snapshots. You can also click the button Select… to navigate to the folder. Alternatively, you can select the menu item Tools > Choose First Object… to open the folder selection sheet or press ⌘ + 1.
  3. Repeat the last step for the second folder, using the lower field. You can alternatively use the menu item Tools > Choose Second Object… or press ⌘ + 2 to open a navigation sheet.
  4. Use the pop-up button in the box Degree of Match to choose how accurately the comparison should be performed.
  5. Click the button Run Sync Check or press ⌘ + R.

If you select folders via a navigation panel, Sync Checker will allow you to see hidden files and will also show macOS bundles as they really are, namely folders simulating files.

Control window
Control window

General principles

All objects contained in the two folders you selected will be processed by Sync Checker. This affects the objects in the folders themselves, the objects in the subfolders of the folders, the objects in the subfolders of the subfolders, etc. However, Sync Checker will not cross volume boundaries: If you have used aliases, symbolic links, or mount points to refer to other volumes in one of the specified folders, those disks won’t be included in the comparison. In such cases, Sync Checker will only test if the aliases themselves are referring to the same objects, but it won’t test whether the referenced objects also have identical contents.

Sync Checker should have access to the actual permission settings stored in the affected file systems. This means the option Ignore ownership on this volume which can be set via the Info panel of the Finder is recommended not to be switched on for any of the volumes which should be compared. When including permissions in the check (see “degree 4” of match further below), this feature must be off. Sync Checker will automatically offer you to disable this option if it detects such a problem.

Note that the permission settings of a volume are very likely not correctly synchronized in case the ownership settings had already been inactive when that volume had been written to.

The entire conception of file synchronization is based on names. If there is a file named A in the first folder, the task of Sync Checker is to verify if there is also a file named A in the second folder, and if both files A have identical contents and identical attributes. If the synchronized file A has been renamed to B in the second folder, their special relationship will be lost. Even if they still have the same contents, Sync Checker won’t test if file A equals file B. Instead, it will report that the matching file for A is missing in the second folder, and the matching file for B is missing in the first folder.

Considerations on Privacy and Security

All file system objects in macOS are protected by individual permission settings. Under normal circumstances, you only have the right to access your own files and all other objects for which you have been granted read permission. However, you might like to use Sync Checker in cases where whole system disks, with files of different users and files owned by the operating system should be compared. To maintain privacy and security in such a case, Sync Checker establishes the following policy:

Note that the last item may affect the privacy of other users. Although you cannot gain access to the actual content of other users’ files, system administrators will have access to the information what files exist and how they have been named. Please respect the privacy laws of your local jurisdiction.

Checking objects the current user is not allowed to access

If the set of data to be checked contains at least one object to which you as the current user do not have access rights, Sync Checker will automatically enable the operating mode privileged access. You must prove to macOS via a standard authorization dialog (see The Security Policy of Sync Checker) that you have administrative rights. Otherwise, the check cannot be started.

Checking objects protected by the privacy features of macOS

Even if you have privileged access to a particular file, there are critical realms of data where applications you have not explicitly granted access permission to are still not allowed to open affected files. You must first acknowledge that a specific application should have such extensive access. This is only required once, as long as that application does not change fundamentally. Critical areas include, for example:

In such a case, Sync Checker will also inform you when it has detected a possible eligibility issue in the data to be checked, requesting you to change the corresponding setting. Apple has designed macOS in such a way that the affected application cannot actively help you in this matter. You must perform the necessary change yourself on the pane Privacy & Security of System Settings, then quit the affected application and launch it again. If desired, Sync Checker will show you detailed instructions on how to do this.

Checking objects affected by the System Integrity Protection of macOS

macOS is able to create certain high-security folders that only a very specific application belonging to that folder (as well as Time Machine) has access to. This feature is called data vault. It is not possible to circumvent this restriction by extending privileges (granting access as administrator) or via application-related privacy settings (Full Disk Access) during normal operation mode. Access would only be possible by disabling the system-wide feature System Integrity Protection (SIP) which is never recommended, however.

Sync Checker also makes you aware of those cases and generally recommends not to sync-check any files located in data vault folders.

Considerations on Offline Cloud Files

With the latest versions of macOS, Apple introduced a new feature in the APFS file system to support cloud solutions: In addition to “real” objects, the file system can now support offline objects which act as placeholders for documents actually stored in the cloud. As soon as an application tries to access such a dataless file, the operating system will automatically materialize this file, downloading the latest version from an associated cloud server if necessary. Even when only listing the contents of a folder, such an access will take place to ensure that all metadata, such as the number of bytes in a file, is up-to-date. Apple uses dataless files for their own iCloud services. Many other vendors also use this feature for their cloud implementations as well.

When Sync Checker performs a check that would include a folder with dataless objects, it should be avoided that macOS automatically triggers a download of the associated files from a cloud service. Otherwise, this could require unnecessary storage space, time, and network communication. In addition, the affected files could change their contents during the sync check which would create inconsistent results. For these reasons, it is the general policy of Sync Checker to just silently ignore all objects that are marked as dataless APFS files. They are not considered true items of their parent folders.

During the Sync Check

While the Sync Check is running, the application shows in a wait sheet what it is currently doing. This window contains a Stop button which can be used to cancel the running operation.

There are certain operating situations where an immediate stop is not possible for technical reasons. In such cases, there can be a few seconds until the procedure is actually canceled.

In general, Sync Checker tries to utilize all processors of your computer for the comparison procedure. The performance is mainly based on the speed of the storage media holding the data. For efficiency reasons, Sync Checker refrains from counting all objects in advance and from estimating how long the check will run.

After the Sync Check

If all objects in the two folders are in perfect sync (in regard to the degree of match you had selected), Sync Checker will display a corresponding success message. If differences have been detected, the application will open a report window which lists all mismatching objects in detail. This report window behaves like an untitled document. You can save the report to file, for example. Working with such reports is explained in a separate chapter.

Omitting specific data

Ignore Lists

You can instruct Sync Checker to omitted specific files during the comparison on principle. Any found deviations for that files will then be ignored. For example, it makes sense not to consider the view settings for folders which are stored by the Finder in a hidden file for each folder which has been opened once. The commands to omit such files are called ignore lists in Sync Checker. They can be activated via the pop-up button Include all Accessible Objects. There is a predefined ignore list for the Finder view settings, but you can create any customized ignore lists yourself. Detailed instructions can be found in the chapter Advanced Comparison Features.

Emulated Attributes

A special feature of macOS is that certain file attributes that can be important for the function of macOS can also be stored on file systems which are actually not supporting this. On such file systems, the attributes are emulated. They are simulated using hidden auxiliary files that have dot-underscore names. This technique is used on file systems such as FAT (old DOS operating systems), ExFAT (camera storage cards), or NFSv3 (UNIX file servers), for example. If additional attributes have to be stored for a file named Sample, a second file in the AppleDouble file format will be created as substitute with the name pattern ._Sample.

Sync Checker follows the guideline never to consider such files. The files are basically a technical trick to store additional items into regular files which are usually handled by the file system itself. The contents of these files are still sync-checked indirectly, because all emulated attributes they contain become part of the comparison anyways.

Degree of Match

It is not always useful to check two sets of files for complete matching. For example, there are ongoing changes in the metadata that are not critical in practice and are not usually of interest. For example, the time of last access is stored for each object. However, even with a perfect copy of files, these details will deviate after a very short time, even if you only open the folder in question in the Finder to show its contents. For this reason, you can pre-select for each Sync Check which deviations are of interest and which are not. With more than 10 years of experience, Sync Checker suggests specific check criteria in stages which have proven to be useful in practice. There are six pre-defined stages defining the degree of match. Each higher stage contains all comparison items of the previous ones.

Degree 1: Check for missing objects only: this results in a simple quick test if files may have been omitted when copying folders. The check will test whether objects with the same names exist in both folders and if their types and sizes match.

Note: The size of objects is checked for regular files only. For other objects, such as folders or sockets, for example, the size in bytes may depend on the current technical conditions of the affected volume and does not provide any useful information in practice.

Degree 2: also check file contents: as before, but for regular files, their contents will be compared as well. The smallest transmission errors, or errors in the storage medium can be detected this way.

Degree 3: … and user defined metadata: as before, but further metadata is tested as well, which could have influence on contents and meaning of an object. This includes UNIX attributes (BSD flags) and Extended Attributes if they are created by user applications or the users themselves. Purely technical attributes, added and removed automatically by the operating system are intentionally not tested.

The following attributes are not considered user-related, so they won’t be checked:

Degree 4: … and permissions: in addition to the aforementioned criteria, all permission settings implemented in the file system will be compared as well. In detail, these are

Degree 5: … and user time specifications: the time of last modification and the time of creation are tested. Other time-related values such as the time of last access, last backup, and last metadata update won’t be checked.

Degree 6: Check for perfect match: all available details become part of the test where this is technically feasible and makes sense. Only the time of last access is always excluded because the Sync Check itself is already changing these values for each object.

The Finder is capable of indicating an additional, optional time specification, namely last opened, the point in time where a graphical application (not the Finder, operating system or a low-level program) has accessed a file to display or process it. This is a special Macintosh feature, managed by the Finder, Spotlight, and Launch Services of macOS, stored in an Extended Attribute. This item is already part of the degree 3 test.

You can increase the degree of match using the menu items Tools > Increase Degree of Match and Tools > Decrease Degree of Match, respectively, by one level upwards or downwards. Alternatively, you can press the key combinations ⌘ + + or ⌘ + —, respectively.

Accuracy of Time Designations

If a degree of match is used that includes date and time information in the check, Sync Checker automatically tries to detect the accuracy by which the two file systems to be tested store the time information. Some file systems handle time information with an accuracy of one second, some with an accuracy of one microsecond (1 millionth of a second). macOS is internally prepared for an accuracy of one nanosecond (1 billionth of a second), but this is typically not used at the moment.

When comparing two file systems, one of which uses a time accuracy different from the other, the comparison automatically rounds to the lower accuracy, otherwise there would be a time deviation for each object and the results would not be meaningful.

Maximum Number of Deviations

When the number of non-matching object exceeds a certain limit, it may no longer be possible to handle them appropriately. This applies both to the computer, which may need a lot of space to store the deviations, and to the human reader. You can set the maximum number of deviations that the application should process as you wish:

Settings window
Settings window
  1. Select the menu item Sync Checker > Settings… or press ⌘ + ,.
  2. Set the desired maximum limit at Stop Sync Check when more than … deviations found.. You can either enter the number by hand, or select a suggested value from the menu.

The limit takes effect for the next check run. When the limit is exceeded, the compare operation is going to be canceled prematurely and the resulting mismatch report will either be discarded immediately, or limited to the specified maximum, depending on your choice.