restic 0.13.1 → 0.16.3
8 releases · 3 breaking changes · 4 security fixes · 0 advisories fixed
4security3breaking4deprecated53feature98fix
Breaking changes
- breaking Bugfix #4540: Restore ARMv5 support for ARM binaries The official release binaries for restic 0.16.1 were accidentally built to require ARMv7. The build process is now updated to restore support for ARMv5. Please note that restic 0.17.0 will drop support for ARMv5 and require at least ARMv6. in 0.16.2
- breaking Enhancement #4130: Cancel current command if cache becomes unusable If the cache directory was removed or ran out of space while restic was running, this would previously cause further caching attempts to fail and thereby drastically slow down the command execution. Now, the currently running… in 0.16.0
- breaking Bugfix #3750: Remove b2_download_file_by_name: 404 warning from B2 backend In some cases the B2 backend could print b2_download_file_by_name: 404: : b2.b2err warnings. These are only debug messages and can be safely ignored. Restic now uses an updated library for accessing B2, which removes the… in 0.15.1
Security changes
- security Enhancement #4375: Add support for extended attributes on symlinks Restic now supports extended attributes on symlinks when backing up, restoring, or FUSE-mounting snapshots. This includes, for example, the security.selinux xattr on Linux distributions that use SELinux. in 0.16.0
- security Sec: Update golang.org/x/net to address CVE-2022-41723 in 0.15.2
- security Security #4275: Update golang.org/x/net to address CVE-2022-41723 in 0.15.2
- security Enhancement #3932: Improve handling of ErrDot errors in rclone and sftp backends Since Go 1.19, restic can no longer implicitly run relative executables which are found in the current directory (e.g. rclone if found in .). This is a security feature of Go to prevent against running unintended and… in 0.15.0
Deprecations
- deprecated Enhancement #1759: Add repair index and repair snapshots commands The rebuild-index command has been renamed to repair index. The old name will still work, but is deprecated. When a snapshot was damaged, the only option up to now was to completely forget the snapshot, even if only some unimportant… in 0.16.0
- deprecated Chg: Deprecate check --check-unused and add further checks in 0.14.0
- deprecated Change #3295: Deprecate check --check-unused and add further checks Since restic 0.12.0, it is expected to still have unused blobs after running prune. This made the --check-unused option of the check command rather useless and tended to confuse users. This option has been deprecated and is now… in 0.14.0
- deprecated Change #3742: Replace --repo2 option used by init/copy with --from-repo The init and copy commands can read data from another repository. However, confusingly --repo2 referred to the repository from which the init command copies parameters, but for the copy command --repo2 referred to the copy… in 0.14.0
Every release in between
fixFix: Improve errors for irregular files on Windows
fixFix: Support backup of deduplicated files on Windows again
fixFix: Improve error handling for rclone backend
fixFix: Correct restore progress information if an error occurs
fixFix: Improve reliability of restoring large files
fixBugfix #4560: Improve errors for irregular files on Windows Since Go 1.21, most filesystem reparse points on Windows are considered to be irregular files. This caused restic to show an error: invalid node type "" error message for those files. This error message has now been improved and includes…
fixBugfix #4574: Support backup of deduplicated files on Windows again With the official release builds of restic 0.16.1 and 0.16.2, it was not possible to back up files that were deduplicated by the corresponding Windows Server feature. This also applied to restic versions built using Go…
fixBugfix #4612: Improve error handling for rclone backend Since restic 0.16.0, if rclone encountered an error while listing files, this could in rare circumstances cause restic to assume that there are no files. Although unlikely, this situation could result in data loss if it were to happen right…
fixBugfix #4624: Correct restore progress information if an error occurs If an error occurred while restoring a snapshot, this could cause the restore progress bar to show incorrect information. In addition, if a data file could not be loaded completely, then errors would also be reported for some…
fixBugfix #4626: Improve reliability of restoring large files In some cases restic failed to restore large files that frequently contain the same file chunk. In combination with certain backends, this could result in network connection timeouts that caused incomplete restores. Restic now includes…
fixFix: Restore ARMv5 support for ARM binaries
fixFix: Repair documentation build on Read the Docs
breakingBugfix #4540: Restore ARMv5 support for ARM binaries The official release binaries for restic 0.16.1 were accidentally built to require ARMv7. The build process is now updated to restore support for ARMv5. Please note that restic 0.17.0 will drop support for ARMv5 and require at least ARMv6.
fixBugfix #4545: Repair documentation build on Read the Docs For restic 0.16.1, no documentation was available at https://restic.readthedocs.io/ . The documentation build process is now updated to work again.
fixFix: Make key list command honor --no-lock
fixFix: Do not try to load password on command line autocomplete
fixFix: Update zstd library to fix possible data corruption at max. compression
otherChg: Update dependencies and require Go 1.19 or newer
otherEnh: Show progress bar while loading the index
otherEnh: Automatically set GOMAXPROCS in resource-constrained containers
featureEnh: Allow setting REST password and username via environment variables
otherEnh: Include inode numbers in JSON output for find and ls commands
featureEnh: Add config option to set SFTP command arguments
fixBugfix #4513: Make key list command honor --no-lock The key list command now supports the --no-lock options. This allows determining which keys a repo can be accessed by without the need for having write access (e.g., read-only sftp access, filesystem snapshot).
fixBugfix #4516: Do not try to load password on command line autocomplete The command line autocompletion previously tried to load the repository password. This could cause the autocompletion not to work. Now, this step gets skipped.
fixBugfix #4523: Update zstd library to fix possible data corruption at max. compression In restic 0.16.0, backups where the compression level was set to max (using --compression max) could in rare and very specific circumstances result in data corruption due to a bug in the library used for…
featureChange #4532: Update dependencies and require Go 1.19 or newer We have updated all dependencies. Since some libraries require newer Go standard library features, support for Go 1.18 has been dropped, which means that restic now requires at least Go 1.19 to build.
otherEnhancement #229: Show progress bar while loading the index Restic did not provide any feedback while loading index files. Now, there is a progress bar that shows the index loading progress.
otherEnhancement #4128: Automatically set GOMAXPROCS in resource-constrained containers When running restic in a Linux container with CPU-usage limits, restic now automatically adjusts GOMAXPROCS. This helps to reduce the memory consumption on hosts with many CPU cores.
featureEnhancement #4480: Allow setting REST password and username via environment variables Previously, it was only possible to specify the REST-server username and password in the repository URL, or by using the --repository-file option. This meant it was not possible to use authentication in contexts…
otherEnhancement #4511: Include inode numbers in JSON output for find and ls commands Restic used to omit the inode numbers in the JSON messages emitted for nodes by the ls command as well as for matches by the find command. It now includes those values whenever they are available.
featureEnhancement #4519: Add config option to set SFTP command arguments When using the sftp backend, scenarios where a custom identity file was needed for the SSH connection, required the full command to be specified: -o sftp.command='ssh user@host:port -i /ssh/my_private_key -s sftp' Now, the -o…
fixFix: Support "unlimited" in forget --keep-* options
fixFix: Support non-UTF8 paths as symlink target
fixFix: Avoid lock refresh issues on slow network connections
fixFix: Improve lock refresh handling after standby
fixFix: Correctly clean up status bar output of the backup command
fixFix: generate and init no longer silently ignore unexpected arguments
fixFix: Ignore missing folders in rest backend
fixChg: Fix JSON message type of scan_finished for the backup command
otherChg: Require Go 1.20 for Solaris builds
otherEnh: Show progress bar during restore
featureEnh: Add --retry-lock option
otherEnh: Sort snapshots by timestamp in restic find
featureEnh: Add repair index and repair snapshots commands
featureEnh: Allow certificate paths to be passed through environment variables
featureEnh: Add support for non-global Azure clouds
featureEnh: Add support for Managed / Workload Identity to azure backend
featureEnh: Add --human-readable option to ls and find commands
featureEnh: Add jq binary to Docker image
featureEnh: Allow specifying region of new buckets in the gs backend
featureEnh: Add support for extended attributes on symlinks
fixBugfix #2565: Support "unlimited" in forget --keep- options Restic would previously forget snapshots that should have been kept when a negative value was passed to the --keep- options. Negative values are now forbidden. To keep all snapshots, the special value unlimited is now supported. For…
fixBugfix #3311: Support non-UTF8 paths as symlink target Earlier restic versions did not correctly backup and restore symlinks that contain a non-UTF8 target. Note that this only affected systems that still use a non-Unicode encoding for filesystem paths. The repository format is now extended to add…
fixBugfix #4199: Avoid lock refresh issues on slow network connections On network connections with a low upload speed, backups and other operations could fail with the error message Fatal: failed to refresh lock in time. This has now been fixed by reworking the lock refresh handling.
fixBugfix #4274: Improve lock refresh handling after standby If the restic process was stopped or the host running restic entered standby during a long running operation such as a backup, this previously resulted in the operation failing with Fatal: failed to refresh lock in time. This has now been…
fixBugfix #4319: Correctly clean up status bar output of the backup command Due to a regression in restic 0.15.2, the status bar of the backup command could leave some output behind. This happened if filenames were printed that are wider than the current terminal width. This has now been fixed.
fixBugfix #4333: generate and init no longer silently ignore unexpected arguments
fixBugfix #4400: Ignore missing folders in rest backend If a repository accessed via the REST backend was missing folders, then restic would fail with an error while trying to list the data in the repository. This has been now fixed.
fixChange #4176: Fix JSON message type of scan_finished for the backup command Restic incorrectly set the message_type of the scan_finished message to status instead of verbose_status. This has now been corrected so that the messages report the correct type.
featureEnhancement #719: Add --retry-lock option This option allows specifying a duration for which restic will wait if the repository is already locked.
deprecatedEnhancement #1759: Add repair index and repair snapshots commands The rebuild-index command has been renamed to repair index. The old name will still work, but is deprecated. When a snapshot was damaged, the only option up to now was to completely forget the snapshot, even if only some unimportant…
featureEnhancement #1926: Allow certificate paths to be passed through environment variables Restic will now read paths to certificates from the environment variables RESTIC_CACERT or RESTIC_TLS_CLIENT_CERT if --cacert or --tls-client-cert are not specified.
featureEnhancement #2468: Add support for non-global Azure clouds The azure backend previously only supported storages using the global domain core.windows.net. This meant that backups to other domains such as Azure China (core.chinacloudapi.cn) or Azure Germany (core.cloudapi.de) were not supported.…
featureEnhancement #3698: Add support for Managed / Workload Identity to azure backend Restic now additionally supports authenticating to Azure using Workload Identity or Managed Identity credentials, which are automatically injected in several environments such as a managed Kubernetes cluster.
featureEnhancement #3871: Support : syntax to select subfolders Commands like diff or restore always worked with the full snapshot. This did not allow comparing only a specific subfolder or only restoring that folder (restore --include subfolder filters the restored files, but still creates the…
featureEnhancement #3941: Support --group-by for backup parent selection Previously, the backup command by default selected the parent snapshot based on the hostname and the backup targets. When the backup path list changed, the backup command was unable to determine a suitable parent snapshot and had to…
breakingEnhancement #4130: Cancel current command if cache becomes unusable If the cache directory was removed or ran out of space while restic was running, this would previously cause further caching attempts to fail and thereby drastically slow down the command execution. Now, the currently running…
featureEnhancement #4159: Add --human-readable option to ls and find commands Previously, when using the -l option with the ls and find commands, the displayed size was always in bytes, without an option for a more human readable format such as MiB or GiB. The new --human-readable option will convert…
featureEnhancement #4220: Add jq binary to Docker image The Docker image now contains jq, which can be useful to process JSON data output by restic.
featureEnhancement #4226: Allow specifying region of new buckets in the gs backend Previously, buckets used by the Google Cloud Storage backend would always get created in the "us" region. It is now possible to specify the region where a bucket should be created by using the -o gs.region=us option.
securityEnhancement #4375: Add support for extended attributes on symlinks Restic now supports extended attributes on symlinks when backing up, restoring, or FUSE-mounting snapshots. This includes, for example, the security.selinux xattr on Linux distributions that use SELinux.
+18 more items in the release notessecuritySec: Update golang.org/x/net to address CVE-2022-41723
fixFix: Sanitize filenames printed by backup during processing
fixFix: Make dump interpret --host and --path correctly
fixFix: Correct number of blocks reported in mount point
fixFix: Minimize risk of spurious filesystem loops with mount
featureEnh: Add release binaries for riscv64 architecture on Linux
otherEnh: Upgrade Minio to version 7.0.49
securitySecurity #4275: Update golang.org/x/net to address CVE-2022-41723
fixBugfix #2260: Sanitize filenames printed by backup during processing The backup command would previously not sanitize the filenames it printed during processing, potentially causing newlines or terminal control characters to mangle the status output or even change the state of a terminal.…
fixBugfix #4211: Make dump interpret --host and --path correctly A regression in restic 0.15.0 caused dump to confuse its --host= and --path= options: it looked for snapshots with paths called from hosts called . It now treats the options as intended.
fixBugfix #4239: Correct number of blocks reported in mount point Restic mount points reported an incorrect number of 512-byte (POSIX standard) blocks for files and links due to a rounding bug. In particular, empty files were reported as taking one block instead of zero. The rounding is now fixed:…
fixBugfix #4253: Minimize risk of spurious filesystem loops with mount When a backup contains a directory that has the same name as its parent, say a/b/b, and the GNU find command was run on this backup in a restic mount, find would refuse to traverse the lowest b directory, instead printing File…
featureEnhancement #4180: Add release binaries for riscv64 architecture on Linux Builds for the riscv64 architecture on Linux are now included in the release binaries.
featureEnhancement #4219: Upgrade Minio to version 7.0.49 The upgraded version now allows use of the ap-southeast-4 region (Melbourne).
fixFix: Remove b2_download_file_by_name: 404 warning from B2 backend
fixFix: Make prune --quiet not print progress bar
fixFix: Make self-update --output work with new filename on Windows
fixFix: Add missing ETA in backup progress bar
otherEnh: Ignore empty lock files
breakingBugfix #3750: Remove b2_download_file_by_name: 404 warning from B2 backend In some cases the B2 backend could print b2_download_file_by_name: 404: : b2.b2err warnings. These are only debug messages and can be safely ignored. Restic now uses an updated library for accessing B2, which removes the…
fixBugfix #4147: Make prune --quiet not print progress bar A regression in restic 0.15.0 caused prune --quiet to show a progress bar while deciding how to process each pack files. This has now been fixed.
fixBugfix #4163: Make self-update --output work with new filename on Windows Since restic 0.14.0 the self-update command did not work when a custom output filename was specified via the --output option. This has now been fixed. As a workaround, either use an older restic version to run the…
fixBugfix #4167: Add missing ETA in backup progress bar A regression in restic 0.15.0 caused the ETA to be missing from the progress bar displayed by the backup command. This has now been fixed.
featureEnhancement #4143: Ignore empty lock files With restic 0.15.0 the checks for stale locks became much stricter than before. In particular, empty or unreadable locks were no longer silently ignored. This made restic to complain with Load(, 0, 0) returned error, retrying after 552.330144ms: load():…
fixFix: Make mount return exit code 0 after receiving Ctrl-C / SIGINT
fixFix: Make restore replace existing symlinks
fixFix: Don't read password from stdin for backup --stdin
fixFix: Delete files on Backblaze B2 more reliably
fixFix: Make SFTP backend report no space left on device
fixFix: Improve handling of interrupted syscalls in mount command
fixFix: Fix stuck copy command when -o .connections=1
fixFix: Correct prune statistics for partially compressed repositories
fixFix: Make ls return exit code 1 if snapshot cannot be loaded
fixFix: Make backup no longer hang on Solaris when seeing a FIFO file
fixFix: Support ExFAT-formatted local backends on macOS Ventura
fixFix: Make init ignore "Access Denied" errors when creating S3 buckets
fixFix: Make self-update enabled by default only in release builds
fixFix: Don't generate negative UIDs and GIDs in tar files from dump
featureEnh: Implement rewrite command
featureEnh: Add support for credential_process to S3 backend
featureEnh: Add compression statistics to the stats command
featureEnh: Allow backup file tree scanner to be disabled
fixBugfix #2015: Make mount return exit code 0 after receiving Ctrl-C / SIGINT To stop the mount command, a user has to press Ctrl-C or send a SIGINT signal to restic. This used to cause restic to exit with a non-zero exit code. The exit code has now been changed to zero as the above is the expected…
fixBugfix #2578: Make restore replace existing symlinks When restoring a symlink, restic used to report an error if the target path already existed. This has now been fixed such that the potentially existing target path is first removed before the symlink is restored.
fixBugfix #2591: Don't read password from stdin for backup --stdin The backup command when used with --stdin previously tried to read first the password, then the data to be backed up from standard input. This meant it would often confuse part of the data for the password. From now on, it will…
fixBugfix #3161: Delete files on Backblaze B2 more reliably Restic used to only delete the latest version of files stored in B2. In most cases this worked well as there was only a single version of the file. However, due to retries while uploading it is possible for multiple file versions to be…
fixBugfix #3336: Make SFTP backend report no space left on device Backing up to an SFTP backend would spew repeated SSH_FX_FAILURE messages when the remote disk was full. Restic now reports "sftp: no space left on device" and exits immediately when it detects this condition. A fix for this issue was…
fixBugfix #3567: Improve handling of interrupted syscalls in mount command Accessing restic's FUSE mount could result in "input/output" errors when using programs in which syscalls can be interrupted. This is for example the case for Go programs. This has now been fixed by improved error handling of…
fixBugfix #3897: Fix stuck copy command when -o .connections=1 When running the copy command with -o .connections=1 the command would be infinitely stuck. This has now been fixed.
fixBugfix #3918: Correct prune statistics for partially compressed repositories In a partially compressed repository, one data blob can exist both in an uncompressed and a compressed version. This caused the prune statistics to become inaccurate and e.g. report a too high value for the unused size,…
fixBugfix #3951: Make ls return exit code 1 if snapshot cannot be loaded The ls command used to show a warning and return exit code 0 when failing to load a snapshot. This has now been fixed such that it instead returns exit code 1 (still showing a warning).
fixBugfix #4003: Make backup no longer hang on Solaris when seeing a FIFO file The backup command used to hang on Solaris whenever it encountered a FIFO file (named pipe), due to a bug in the handling of extended attributes. This bug has now been fixed.
fixBugfix #4016: Support ExFAT-formatted local backends on macOS Ventura ExFAT-formatted disks could not be used as local backends starting from macOS Ventura. Restic commands would fail with an "inappropriate ioctl for device" error. This has now been fixed.
fixBugfix #4085: Make init ignore "Access Denied" errors when creating S3 buckets In restic 0.9.0 through 0.13.0, the init command ignored some permission errors from S3 backends when trying to check for bucket existence, so that manually created buckets with custom permissions could be used for…
featureChange #4041: Update dependencies and require Go 1.18 or newer Most dependencies have been updated. Since some libraries require newer language features, support for Go 1.15-1.17 has been dropped, which means that restic now requires at least Go 1.18 to build.
featureEnhancement #14: Implement rewrite command Restic now has a rewrite command which allows to rewrite existing snapshots to remove unwanted files.
featureEnhancement #2134: Support B2 API keys restricted to hiding but not deleting files When the B2 backend does not have the necessary permissions to permanently delete files, it now automatically falls back to hiding files. This allows using restic with an application key which is not allowed to…
featureEnhancement #2715: Stricter repository lock handling Previously, restic commands kept running even if they failed to refresh their locks in time. This could be a problem e.g. in case the client system running a backup entered the standby power mode while the backup was still in progress (which…
featureEnhancement #2750: Make backup file read concurrency configurable The backup command now supports a --read-concurrency option which allows tuning restic for very fast storage like NVMe disks by controlling the number of concurrent file reads during the backup process.
featureEnhancement #3029: Add support for credential_process to S3 backend Restic now uses a newer library for the S3 backend, which adds support for the credential_process option in the AWS credential configuration.
featureEnhancement #3096: Make mount command support macOS using macFUSE 4.x Restic now uses a different FUSE library for mounting snapshots and making them available as a FUSE filesystem using the mount command. This adds support for macFUSE 4.x which can be used to make this work on recent macOS…
featureEnhancement #3915: Add compression statistics to the stats command When executed with --mode raw-data on a repository that supports compression, the stats command now calculates and displays, for the selected repository or snapshots: the uncompressed size of the data; the compression progress…
featureEnhancement #3931: Allow backup file tree scanner to be disabled The backup command walks the file tree in a separate scanner process to find the total size and file/directory count, and uses this to provide an ETA. This can slow down backups, especially of network filesystems. The command now has…
securityEnhancement #3932: Improve handling of ErrDot errors in rclone and sftp backends Since Go 1.19, restic can no longer implicitly run relative executables which are found in the current directory (e.g. rclone if found in .). This is a security feature of Go to prevent against running unintended and…
+38 more items in the release notesfixFix: Support self-update on Windows
fixFix: List snapshots in backend at most once to resolve snapshot IDs
fixFix: Fix rare 'not found in repository' error for copy command
fixFix: The diff command incorrectly listed some files as added
fixFix: Fix rclone (shimmed by Scoop) and sftp not working on Windows
fixFix: Directory sync errors for repositories accessed via SMB
fixFix: The stats command miscalculated restore size for multiple snapshots
fixFix: Yield error on invalid policy to forget
fixFix: Print "wrong password" to stderr instead of stdout
fixFix: Correctly rebuild index for legacy repositories
fixFix: Limit number of key files tested while opening a repository
otherChg: Support debug log creation in release builds
deprecatedChg: Deprecate check --check-unused and add further checks
otherChg: Update dependencies and require Go 1.15 or newer
featureEnh: Add compression support
featureEnh: Allow pack size customization
featureEnh: Allow use of SAS token to authenticate to Azure
featureEnh: Allow limiting IO concurrency for local and SFTP backend
fixBugfix #2248: Support self-update on Windows Restic self-update would fail in situations where the operating system locks running binaries, including Windows. The new behavior works around this by renaming the running file and swapping the updated file in place.
fixBugfix #3428: List snapshots in backend at most once to resolve snapshot IDs Many commands support specifying a list of snapshot IDs which are then used to determine the snapshots to be processed by the command. To resolve snapshot IDs or latest, and check that these exist, restic previously…
fixBugfix #3432: Fix rare 'not found in repository' error for copy command In rare cases copy (and other commands) would report that LoadTree(...) returned an id [...] not found in repository error. This could be caused by a backup or copy command running concurrently. The error was only temporary;…
fixBugfix #3685: The diff command incorrectly listed some files as added There was a bug in the diff command, causing it to always show files in a removed directory as added. This has now been fixed.
fixBugfix #3681: Fix rclone (shimmed by Scoop) and sftp not working on Windows In #3602 a fix was introduced to address the problem of rclone prematurely exiting when Ctrl+C is pressed on Windows. The solution was to create the subprocess with its console detached from the restic console. However,…
fixBugfix #3720: Directory sync errors for repositories accessed via SMB On Linux and macOS, accessing a repository via a SMB/CIFS mount resulted in restic failing to save the lock file, yielding the following errors: Save() returned error, retrying after 552.330144ms: sync /repo/locks: no such file…
fixBugfix #3736: The stats command miscalculated restore size for multiple snapshots Since restic 0.10.0 the restore size calculated by the stats command for multiple snapshots was too low. The hardlink detection was accidentally applied across multiple snapshots and thus ignored many files. This has…
fixBugfix #3861: Yield error on invalid policy to forget The forget command previously silently ignored invalid/unsupported units in the duration options, such as e.g. --keep-within-daily 2w. Specifying an invalid/unsupported duration unit now results in an error.
fixBugfix #3716: Print "wrong password" to stderr instead of stdout If an invalid password was entered, the error message was printed on stdout and not on stderr as intended. This has now been fixed. https://forum.restic.net/t/4965
fixBugfix #3772: Correctly rebuild index for legacy repositories After running rebuild-index on a legacy repository containing mixed pack files (that is, pack files which store both metadata and file data), check printed warnings like pack 12345678 contained in several indexes: .... This warning was…
fixBugfix #3776: Limit number of key files tested while opening a repository Previously, restic tested the password against every key in the repository when opening a repository. The more keys there were in the repository, the slower this operation became. Restic now tests the password against up to…
featureChange #1842: Support debug log creation in release builds Creating a debug log was only possible in debug builds which required users to manually build restic. We changed the release builds to allow creating debug logs by simply setting the environment variable DEBUG_LOG=logname.log.
deprecatedChange #3295: Deprecate check --check-unused and add further checks Since restic 0.12.0, it is expected to still have unused blobs after running prune. This made the --check-unused option of the check command rather useless and tended to confuse users. This option has been deprecated and is now…
featureChange #3680: Update dependencies and require Go 1.15 or newer We've updated most dependencies. Since some libraries require newer language features we're dropping support for Go 1.14, which means that restic now requires at least Go 1.15 to build.
deprecatedChange #3742: Replace --repo2 option used by init/copy with --from-repo The init and copy commands can read data from another repository. However, confusingly --repo2 referred to the repository from which the init command copies parameters, but for the copy command --repo2 referred to the copy…
featureEnhancement #1153: Support pruning even when the disk is full When running out of disk space it was no longer possible to add or remove data from a repository. To help with recovering from such a deadlock, the prune command now supports an --unsafe-recover-no-free-space option to recover from…
featureEnhancement #21: Add compression support We've added compression support to the restic repository format. To create a repository using the new format run init --repository-version 2. Please note that the repository cannot be read by restic versions prior to 0.14.0. You can configure whether data…
featureEnhancement #2291: Allow pack size customization Restic now uses a target pack size of 16 MiB by default. This can be customized using the --pack-size size option. Supported pack sizes range between 4 and 128 MiB. It is possible to migrate an existing repository to larger pack files using prune…
featureEnhancement #2295: Allow use of SAS token to authenticate to Azure Previously restic only supported AccountKeys to authenticate to Azure storage accounts, which necessitates giving a significant amount of access. We added support for Azure SAS tokens which are a more fine-grained and time-limited…
featureEnhancement #2696: Improve backup speed with many small files We have restructured the backup pipeline to continue reading files while all upload connections are busy. This allows the backup to already prepare the next data file such that the upload can continue as soon as a connection becomes…
featureEnhancement #2907: Make snapshot directory structure of mount command customizable We've added the possibility to customize the snapshot directory structure of the mount command using templates passed to the --snapshot-template option. The formatting of snapshots' timestamps is now controlled…
featureEnhancement #3475: Allow limiting IO concurrency for local and SFTP backend Restic did not support limiting the IO concurrency / number of connections for accessing repositories stored using the local or SFTP backends. The number of connections is now limited as for other backends, and can be…
+26 more items in the release notes