The latest 3.3.4 update fixes the issue discussed in the previous post, bypassing /System/Volumes/Data mount point.
You may have noticed that in macOS Catalina users are requested permissions for private data services. Since Purple Tree needs access to folders containing user’s data, such as Downloads or Pictures, users will be asked for permissions for each of these folders when run for the first time.
To be able to scan these folders, users should allow the access. Purple Tree doesn’t read any file contents except for the directory structure, file sizes or checksum (SHA1) computation.
Catalina introduces a separation between a write protected system volume, seen as the main ‘Macintosh HD’ volume mounted on / and a read/write data volume called ‘Macintosh HD – Data’ which is mounted on /System/Volumes/Data. Both volumes are seen by the user as a single drive with familiar folders: /Applications, /Users, /Library etc. However these folders are now firmlinks to different drive locations. Firmlinks are a new APFS feature, similar to symbolic links, creating portals or wormholes to different locations on the drive, even across different volumes and having its own consistent path.
As an example, we can see that /Users/Guest and /System/Volumes/Data/Users/Guest will point to the same folder, just like a symlink would do, but firmlinks are seen by users (and by Purple Tree app) as regular folders and therefore are traversed when scanning a system drive. As a result the tree traversal from / will traverse Users folder twice, displaying a huge false duplicate 😱. Same for /Application which is mixing system and user installed apps!
An update fixing this issue will come soon. Meanwhile, in order to prevent this in Purple Tree 3.3.3 and earlier, you should manually exclude /System/Volumes/Data in Preferences. To do so, just browse to /System/Volumes and select what appears to be ‘Macintosh HD’ then check the added path to be correct. Please note that this is necessary only if you scan the whole system drive. In case you just want to scan your home directory or a different drive, this exclusion is not required 🙂