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-mode
flag in thecreate
command and thescanMode
setting 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 flush
always 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
create
commands-l/--label
flag, 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
, andterminate
commands using the--label-selector
flag, 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-mode
flag in thecreate
command and theprobeMode
setting in the[sync]
section of~/.mutagen.toml
. The options for this flag areprobe
(the default) andassume
. With theprobe
setting, 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. Usingassume
will 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-mode
flag in thecreate
command and thestageMode
setting in the[sync]
section of~/.mutagen.toml
. The options for this flag aremutagen
(the default) andneighboring
. With themutagen
setting, files will be staged in the Mutagen data directory (~/.mutagen
). With theneighboring
setting, files will be staged in a temporary directory that neighbors the synchronization root. - Added a
--no-global-configuration
flag to thecreate
command 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 thecreate
command using the-c/--configuration-file
flag. This file will be loaded and merged on top of the~/.mutagen.toml
file (unless that file has been disabled with the--no-global-configuration
flag). - 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 stop
will 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