NOTE: This is an experimental, beta-quality, pre-release version of Mutagen. This release in particular is very large and contains changes to significant portions of Mutagen's implementation. It may have unknown issues. It should not be used on production or mission-critical systems. Use on any system is at your own risk (please see the license). For a better experience, you may wish to use the latest stable release.
NOTE: Sessions created with previous non-beta Mutagen releases are forward-compatible, but sessions created with beta releases are not guaranteed to be compatible with their corresponding final release version. Please wait for the final tagged release (v0.9.0 - which will be released shortly) if you want to be sure that you can avoid recreating sessions. Documentation is also still pending for the new features in this release.
Changes
This release includes the following changes from the v0.8.x series:
- Added a "scan mode" option that allows for accelerated filesystem scans that reduce synchronization latency by utilizing filesystem watching information. This is controlled by the
--scan-modeflag in thecreatecommand and thescanModesetting in the[sync]section of~/.mutagen.toml. The options for this flag arefull(the default) andaccelerated. Please be aware that accelerated scans are experimental, though testing is appreciated! Usingmutagen flushalways forces a full scan. - Support for session labels has been added. The syntax and semantics of these labels are identical to those of Kubernetes (in fact the underlying implementation is shared). Labels can be attached to a session at creation time using the
createcommands-l/--labelflag, e.g.--label=mutagen=awesome. Multiple labels can be created by specifying this flag repeatedly. Labels can be used to identify sessions in thelist,monitor,flush,pause,resume, andterminatecommands using the--label-selectorflag, e.g. `--label-selector='mutagen==awesome'. - Added a "probe mode" option and optimized fast paths that allow endpoints to avoid probing filesystem behavior with temporary files. This is controlled by the
--probe-modeflag in thecreatecommand and theprobeModesetting in the[sync]section of~/.mutagen.toml. The options for this flag areprobe(the default) andassume. With theprobesetting, Mutagen will attempt to determine filesystem behavior using filesystem queries, falling back to probe files if these queries aren't available or the filesystem format is unknown. Usingassumewill cause endpoints to assume session behavior based on the platform, which is less accurate but significantly faster. - Added a "stage mode" option that controls where Mutagen stages files before transforming a synchronization root, allowing for more efficient synchronization when working across volumes. This is controlled by the
--stage-modeflag in thecreatecommand and thestageModesetting in the[sync]section of~/.mutagen.toml. The options for this flag aremutagen(the default) andneighboring. With themutagensetting, files will be staged in the Mutagen data directory (~/.mutagen). With theneighboringsetting, files will be staged in a temporary directory that neighbors the synchronization root. - Added a
--no-global-configurationflag to thecreatecommand to exclude the global configuration (~/.mutagen.toml) from the session configuration - Added the ability to specify a custom TOML configuration file (with the same format as
~/.mutagen.toml) to thecreatecommand using the-c/--configuration-fileflag. This file will be loaded and merged on top of the~/.mutagen.tomlfile (unless that file has been disabled with the--no-global-configurationflag). - Filesystem watching has been completely refactored and should be significantly more reliable (though still limited on platforms without recursive watching support)
- Filesystem probing using temporary files has been modified to work on filesystems that don't support POSIX-compliant behavior
- Added a check to all commands that they are communicating with a compatible version of the daemon.
Compatibility is currently restricted to daemons with the same version. The Mutagen daemon termination API is frozen, somutagen daemon stopwill always work to terminate an older daemon instance. - Added myriad internal optimizations and fixes
- Performed significant code reorganization and refactoring
- Updated code and module files for Go 1.12
- Increased Go version dependency to 1.12
- Updated all dependencies
Platforms
The following platform support has been added:
- Windows ARM