# restic changelog > Fast, secure, efficient backup. - Vendor: restic - Category: Developer Tools - Official site: https://restic.net - Tracked by: What's New (https://whatsnew.fyi/product/restic) - Harvested from: GitHub (restic/restic) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v0.19.1 — restic 0.19.1 - Date: 2026-07-05 - Version: v0.19.1 - Original notes: https://github.com/restic/restic/releases/tag/v0.19.1 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.19.1 - **fixed** — Prevent mounting over the repository directory - **fixed** — Skip inaccessible backup source paths - **fixed** — Update mount latest symlink after snapshot reload - **fixed** — Hide stats progress bar in JSON mode - **fixed** — Restore old behavior of snapshots --latest without --group-by - **fixed** — Show timezone location in snapshots output - **fixed** — Prevent crash in mountpoint validation if mountpoint is inaccessible - **fixed** — Remove read-only files via the SFTP backend on Windows servers - **fixed** — Make backup respect excludes for duplicate directory entries Changelog for restic 0.19.1 (2026-07-05) ======================================= The following sections list the changes in restic 0.19.1 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#5234](https://github.com/restic/restic/issues/5234): Prevent mounting over the repository directory * Fix [#5667](https://github.com/restic/restic/issues/5667): Skip inaccessible `backup` source paths * Fix [#5722](https://github.com/restic/restic/issues/5722): Update `mount` latest symlink after snapshot reload * Fix [#21866](https://github.com/restic/restic/issues/21866): Hide `stats` progress bar in JSON mode * Fix [#21869](https://github.com/restic/restic/issues/21869): Restore old behavior of `snapshots --latest ` without `--group-by` * Fix [#21876](https://github.com/restic/restic/pull/21876): Show timezone location in `snapshots` output * Fix [#21879](https://github.com/restic/restic/pull/21879): Prevent crash in mountpoint validation if mountpoint is inaccessible * Fix [#21895](https://github.com/restic/restic/issues/21895): Remove read-only files via the SFTP backend on Windows servers * Fix [#21899](https://github.com/restic/restic/issues/21899): Make `backup` respect excludes for duplicate directory entries Details ------- * Bugfix #5234: Prevent mounting over the repository directory Using a local repository directory as the `mount` target — or a path that contains it, or that it contains — caused the FUSE server to read its own backend files through the new mount, deadlocking the kernel and requiring a long reboot to recover. Restic now resolves both paths and refuses any such overlap with a clear error before mounting. [#5234](https://github.com/restic/restic/issues/5234) [#5348](https://github.com/restic/restic/pull/5348) * Bugfix #5667: Skip inaccessible `backup` source paths The `backup` command only skipped source paths that did not exist. A path that could not be accessed for another reason, such as a malformed path on Windows, was kept and produced an empty snapshot. Restic now skips any such path and aborts if none remain. [#5667](https://github.com/restic/restic/issues/5667) [#21852](https://github.com/restic/restic/pull/21852) * Bugfix #5722: Update `mount` latest symlink after snapshot reload When `restic mount` was kept running while new snapshots were created, the new snapshots appeared in the mountpoint, but the `latest` symlink could still point to the previously latest snapshot. Restic now invalidates the cached snapshot directory entries after a snapshot reload so that `latest` points to the newest snapshot. [#5722](https://github.com/restic/restic/issues/5722) [#21873](https://github.com/restic/restic/pull/21873) * Bugfix #21866: Hide `stats` progress bar in JSON mode Since restic 0.19.0, the `stats` command shows a progress bar. This progress bar was unintentionally displayed also when using the `--json` option, mixing regular text output with JSON. This is now fixed. [#21866](https://github.com/restic/restic/issues/21866) [#21871](https://github.com/restic/restic/pull/21871) * Bugfix #21869: Restore old behavior of `snapshots --latest ` without `--group-by` Restic 0.19.0 accidentally changed the behavior of `snapshots --latest ` to no longer group snapshots by host and paths by default. The `snapshots --latest ` command now again uses the old behavior of grouping by host and paths when `--group-by` is not specified. However, when specifying `--group-by` the output is still grouped as requested, as in restic 0.19.0. [#21869](https://github.com/restic/restic/issues/21869) [#21875](https://github.com/restic/restic/pull/21875) * Bugfix #21876: Show timezone location in `snapshots` output With restic 0.19.0, the `snapshots` command printed the current timezone when listing snapshots. However, that timezone label might chang _[Truncated at 4000 characters — full notes: https://github.com/restic/restic/releases/tag/v0.19.1]_ ### v0.19.0 — restic 0.19.0 - Date: 2026-06-09 - Version: v0.19.0 - Original notes: https://github.com/restic/restic/releases/tag/v0.19.0 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.19.0 - **fixed** — Support serving a restic mount of a Windows system via Samba - **fixed** — Use mode 0700 for repository directories created over SFTP - **fixed** — Exit with code 3 when some backup source paths do not exist - **fixed** — Error out when environment variables hold invalid values - **fixed** — Return exit code 3 when failing to remove snapshots - **fixed** — Exit with code 130 on SIGINT - **fixed** — Reject impossible find time bounds immediately - **fixed** — Make find --pack list blobs for tree packs - **fixed** — Allow rclone and sftp backends when running in background - **fixed** — Correctly restore ACL inheritance state on Windows - **fixed** — Password prompt was sometimes not shown for backup -v - **fixed** — Mark repository files read-only when using the SFTP backend - **fixed** — Correctly handle snapshots --group-by with --latest - **fixed** — Avoid spurious chmod errors on certain file backends - **fixed** — Prevent backup --stdin-from-command from hanging - **fixed** — Respect --user and --host in key passwd - **fixed** — Correct handling of duplicate index entries - **fixed** — Correctly handle pack files missing from the index - **changed** — Prune small packfiles more aggressively - **changed** — Prevent excluding paths explicitly passed to backup Changelog for restic 0.19.0 (2026-06-09) ======================================= The following sections list the changes in restic 0.19.0 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#2034](https://github.com/restic/restic/issues/2034): Support serving a `restic mount` of a Windows system via Samba * Fix [#4447](https://github.com/restic/restic/issues/4447): Use mode 0700 for repository directories created over SFTP * Fix [#4467](https://github.com/restic/restic/issues/4467): Exit with code 3 when some `backup` source paths do not exist * Fix [#4759](https://github.com/restic/restic/issues/4759): Error out when environment variables hold invalid values * Fix [#5233](https://github.com/restic/restic/issues/5233): Return exit code 3 when failing to remove snapshots * Fix [#5258](https://github.com/restic/restic/issues/5258): Exit with code 130 on SIGINT * Fix [#5280](https://github.com/restic/restic/issues/5280): Reject impossible `find` time bounds immediately * Fix [#5280](https://github.com/restic/restic/issues/5280): Make `find --pack` list blobs for tree packs * Fix [#5354](https://github.com/restic/restic/issues/5354): Allow `rclone` and `sftp` backends when running in background * Fix [#5427](https://github.com/restic/restic/issues/5427): Correctly restore ACL inheritance state on Windows * Fix [#5477](https://github.com/restic/restic/issues/5477): Password prompt was sometimes not shown for `backup -v` * Fix [#5487](https://github.com/restic/restic/issues/5487): Mark repository files read-only when using the SFTP backend * Fix [#5586](https://github.com/restic/restic/issues/5586): Correctly handle `snapshots --group-by` with `--latest` * Fix [#5595](https://github.com/restic/restic/issues/5595): Avoid spurious `chmod` errors on certain file backends * Fix [#5683](https://github.com/restic/restic/issues/5683): Prevent `backup --stdin-from-command` from hanging * Fix [#5757](https://github.com/restic/restic/issues/5757): Respect `--user` and `--host` in `key passwd` * Fix [#21820](https://github.com/restic/restic/issues/21820): Correct handling of duplicate index entries * Fix [#21820](https://github.com/restic/restic/issues/21820): Correctly handle pack files missing from the index * Chg [#5293](https://github.com/restic/restic/issues/5293): Prune small packfiles more aggressively * Chg [#5767](https://github.com/restic/restic/issues/5767): Prevent excluding paths explicitly passed to `backup` * Chg [#21791](https://github.com/restic/restic/issues/21791): Update dependencies and require Go 1.25 or newer * Enh [#3326](https://github.com/restic/restic/issues/3326): Limit `check` to snapshots selected by filters * Enh [#3572](https://github.com/restic/restic/issues/3572): Support restoring ownership by name on UNIX systems * Enh [#3738](https://github.com/restic/restic/issues/3738): Optional GitHub token for `self-update` API requests * Enh [#4278](https://github.com/restic/restic/issues/4278): Support include filters in the `rewrite` command * Enh [#4728](https://github.com/restic/restic/issues/4728): Support zstd compression levels `fastest` and `better` * Enh [#4868](https://github.com/restic/restic/issues/4868): Include repository ID in the filesystem name used by `mount` * Enh [#5175](https://github.com/restic/restic/issues/5175): Add status counters to `copy` in verbose text output * Enh [#5352](https://github.com/restic/restic/issues/5352): Support excluding cloud-backed files on macOS * Enh [#5383](https://github.com/restic/restic/issues/5383): Reduce progress bar refresh rates to decrease energy usage * Enh [#5424](https://github.com/restic/restic/pull/5424): Enable Windows filesystem privileges before file access * Enh [#5440](https://github.com/restic/restic/issues/5440): Make `--host` override environment variable `RESTIC_HOST` * Enh [#5448](https://github.com/restic/restic/pull/5448): Support co _[Truncated at 4000 characters — full notes: https://github.com/restic/restic/releases/tag/v0.19.0]_ ### v0.18.1 — restic 0.18.1 - Date: 2025-09-21 - Version: v0.18.1 - Original notes: https://github.com/restic/restic/releases/tag/v0.18.1 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.18.1 Changelog for restic 0.18.1 (2025-09-21) ======================================= The following sections list the changes in restic 0.18.1 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#5324](https://github.com/restic/restic/issues/5324): Correctly handle `backup --stdin-filename` with directory paths * Fix [#5325](https://github.com/restic/restic/issues/5325): Accept `RESTIC_HOST` environment variable in `forget` command * Fix [#5342](https://github.com/restic/restic/issues/5342): Ignore "chmod not supported" errors when writing files * Fix [#5344](https://github.com/restic/restic/issues/5344): Ignore `EOPNOTSUPP` errors for extended attributes * Fix [#5421](https://github.com/restic/restic/pull/5421): Fix rare crash if directory is removed during backup * Fix [#5429](https://github.com/restic/restic/issues/5429): Stop retrying uploads when rest-server runs out of space * Fix [#5467](https://github.com/restic/restic/issues/5467): Improve handling of download retries in `check` command Details ------- * Bugfix #5324: Correctly handle `backup --stdin-filename` with directory paths In restic 0.18.0, the `backup` command failed if a filename that includes at least a directory was passed to `--stdin-filename`. For example, `--stdin-filename /foo/bar` resulted in the following error: ``` Fatal: unable to save snapshot: open /foo: no such file or directory ``` This has now been fixed. [#5324](https://github.com/restic/restic/issues/5324) [#5356](https://github.com/restic/restic/pull/5356) * Bugfix #5325: Accept `RESTIC_HOST` environment variable in `forget` command The `forget` command did not use the host name from the `RESTIC_HOST` environment variable when filtering snapshots. This has now been fixed. [#5325](https://github.com/restic/restic/issues/5325) [#5327](https://github.com/restic/restic/pull/5327) * Bugfix #5342: Ignore "chmod not supported" errors when writing files Restic 0.18.0 introduced a bug that caused `chmod xxx: operation not supported` errors to appear when writing to a local file repository that did not support chmod (like CIFS or WebDAV mounted via FUSE). Restic now ignores those errors. [#5342](https://github.com/restic/restic/issues/5342) * Bugfix #5344: Ignore `EOPNOTSUPP` errors for extended attributes Restic 0.18.0 added extended attribute support for NetBSD 10+, but not all NetBSD filesystems support extended attributes. Other BSD systems can likewise return `EOPNOTSUPP`, so restic now ignores these errors. [#5344](https://github.com/restic/restic/issues/5344) * Bugfix #5421: Fix rare crash if directory is removed during backup In restic 0.18.0, the `backup` command could crash if a directory was removed between reading its metadata and listing its directory content. This has now been fixed. [#5421](https://github.com/restic/restic/pull/5421) * Bugfix #5429: Stop retrying uploads when rest-server runs out of space When rest-server returns a `507 Insufficient Storage` error, it indicates that no more storage capacity is available. Restic now correctly stops retrying uploads in this case. [#5429](https://github.com/restic/restic/issues/5429) [#5452](https://github.com/restic/restic/pull/5452) * Bugfix #5467: Improve handling of download retries in `check` command In very rare cases, the `check` command could unnecessarily report repository damage if the backend returned incomplete, corrupted data on the first download try which is afterwards resolved by a download retry. This could result in an error output like the following: ``` Load(, 33918928, 0) returned error, retrying after 871.35598ms: readFull: unexpected EOF Load(, 33918928, 0) operation successful after 1 retries check successful on second attempt, original error pack 34567890ab[...] c _[Truncated at 4000 characters — full notes: https://github.com/restic/restic/releases/tag/v0.18.1]_ ### v0.18.0 — restic 0.18.0 - Date: 2025-03-27 - Version: v0.18.0 - Original notes: https://github.com/restic/restic/releases/tag/v0.18.0 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.18.0 Changelog for restic 0.18.0 (2025-03-27) ======================================= The following sections list the changes in restic 0.18.0 relevant to restic users. The changes are ordered by importance. Summary ------- * Sec [#5291](https://github.com/restic/restic/issues/5291): Mitigate attack on content-defined chunking algorithm * Fix [#1843](https://github.com/restic/restic/issues/1843): Correctly restore long filepaths' timestamp on old Windows * Fix [#2165](https://github.com/restic/restic/issues/2165): Ignore disappeared backup source files * Fix [#5153](https://github.com/restic/restic/pull/5153): Include root tree when searching using `find --tree` * Fix [#5169](https://github.com/restic/restic/issues/5169): Prevent Windows VSS event log 8194 warnings for backup with fs snapshot * Fix [#5212](https://github.com/restic/restic/pull/5212): Fix duplicate data handling in `prune --max-unused` * Fix [#5249](https://github.com/restic/restic/pull/5249): Fix creation of oversized index by `repair index --read-all-packs` * Fix [#5259](https://github.com/restic/restic/issues/5259): Fix rare crash in command output * Chg [#4938](https://github.com/restic/restic/pull/4938): Update dependencies and require Go 1.23 or newer * Chg [#5162](https://github.com/restic/restic/pull/5162): Promote feature flags * Enh [#1378](https://github.com/restic/restic/issues/1378): Add JSON support to `check` command * Enh [#2511](https://github.com/restic/restic/issues/2511): Support generating shell completions to stdout * Enh [#3697](https://github.com/restic/restic/issues/3697): Allow excluding online-only cloud files (e.g. OneDrive) * Enh [#4179](https://github.com/restic/restic/issues/4179): Add `sort` option to `ls` command * Enh [#4433](https://github.com/restic/restic/issues/4433): Change default sort order for `find` output * Enh [#4521](https://github.com/restic/restic/issues/4521): Add support for Microsoft Blob Storage access tiers * Enh [#4942](https://github.com/restic/restic/issues/4942): Add snapshot summary statistics to rewritten snapshots * Enh [#4948](https://github.com/restic/restic/issues/4948): Format exit errors as JSON when requested * Enh [#4983](https://github.com/restic/restic/issues/4983): Add SLSA provenance to GHCR container images * Enh [#5054](https://github.com/restic/restic/pull/5054): Enable compression for ZIP archives in `dump` command * Enh [#5081](https://github.com/restic/restic/issues/5081): Add retry mechanism for loading repository config * Enh [#5089](https://github.com/restic/restic/issues/5089): Allow including/excluding extended file attributes during `restore` * Enh [#5092](https://github.com/restic/restic/issues/5092): Show count of deleted files and directories during `restore` * Enh [#5109](https://github.com/restic/restic/issues/5109): Make small pack size configurable for `prune` * Enh [#5119](https://github.com/restic/restic/pull/5119): Add start and end timestamps to `backup` JSON output * Enh [#5131](https://github.com/restic/restic/issues/5131): Add DragonFlyBSD support * Enh [#5137](https://github.com/restic/restic/issues/5137): Make `tag` command print which snapshots were modified * Enh [#5141](https://github.com/restic/restic/pull/5141): Provide clear error message if AZURE_ACCOUNT_NAME is not set * Enh [#5173](https://github.com/restic/restic/pull/5173): Add experimental S3 cold storage support * Enh [#5174](https://github.com/restic/restic/issues/5174): Add xattr support for NetBSD 10+ * Enh [#5251](https://github.com/restic/restic/pull/5251): Improve retry handling for flaky `rclone` backends * Enh [#52897](https://github.com/restic/restic/issues/52897): Make `recover` automatically rebuild index when needed Details ------- * Security #5291: Mitigate attack on content-defined chunking algorithm Restic uses [Rabin Fingerprints](https://restic.net/blog/2015-09-12/restic-foundation1-cdc/) for its conten _[Truncated at 4000 characters — full notes: https://github.com/restic/restic/releases/tag/v0.18.0]_ ### v0.17.3 — restic 0.17.3 - Date: 2024-11-08 - Version: v0.17.3 - Original notes: https://github.com/restic/restic/releases/tag/v0.17.3 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.17.3 Changelog for restic 0.17.3 (2024-11-08) ======================================= The following sections list the changes in restic 0.17.3 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#4971](https://github.com/restic/restic/issues/4971): Fix unusable `mount` on macOS Sonoma * Fix [#5003](https://github.com/restic/restic/issues/5003): Fix metadata errors during backup of removable disks on Windows * Fix [#5101](https://github.com/restic/restic/pull/5101): Do not retry load/list operation if SFTP connection is broken * Fix [#5107](https://github.com/restic/restic/issues/5107): Fix metadata error on Windows for backups using VSS * Enh [#5096](https://github.com/restic/restic/pull/5096): Allow `prune --dry-run` without lock Details ------- * Bugfix #4971: Fix unusable `mount` on macOS Sonoma On macOS Sonoma when using FUSE-T, it was not possible to access files in a mounted repository. This issue is now resolved. [#4971](https://github.com/restic/restic/issues/4971) [#5048](https://github.com/restic/restic/pull/5048) * Bugfix #5003: Fix metadata errors during backup of removable disks on Windows Since restic 0.17.0, backing up removable disks on Windows could report errors with retrieving metadata like shown below. ``` error: incomplete metadata for d:\filename: get named security info failed with: Access is denied. ``` This has now been fixed. [#5003](https://github.com/restic/restic/issues/5003) [#5123](https://github.com/restic/restic/pull/5123) https://forum.restic.net/t/backing-up-a-folder-from-a-veracrypt-volume-brings-up-errors-since-restic-v17-0/8444 * Bugfix #5101: Do not retry load/list operation if SFTP connection is broken When using restic with the SFTP backend, backend operations that load a file or list files were retried even if the SFTP connection was broken. This has now been fixed. [#5101](https://github.com/restic/restic/pull/5101) https://forum.restic.net/t/restic-hanging-on-backup/8559 * Bugfix #5107: Fix metadata error on Windows for backups using VSS Since restic 0.17.2, when creating a backup on Windows using `--use-fs-snapshot`, restic would report an error like the following: ``` error: incomplete metadata for C:\: get EA failed while opening file handle for path \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyXX\, with: The process cannot access the file because it is being used by another process. ``` This has now been fixed by correctly handling paths that refer to volume shadow copy snapshots. [#5107](https://github.com/restic/restic/issues/5107) [#5110](https://github.com/restic/restic/pull/5110) [#5112](https://github.com/restic/restic/pull/5112) * Enhancement #5096: Allow `prune --dry-run` without lock The `prune --dry-run --no-lock` now allows performing a dry-run without locking the repository. Note that if the repository is modified concurrently, `prune` may return inaccurate statistics or errors. [#5096](https://github.com/restic/restic/pull/5096) ### v0.17.2 — restic 0.17.2 - Date: 2024-10-27 - Version: v0.17.2 - Original notes: https://github.com/restic/restic/releases/tag/v0.17.2 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.17.2 Changelog for restic 0.17.2 (2024-10-27) ======================================= The following sections list the changes in restic 0.17.2 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#4004](https://github.com/restic/restic/issues/4004): Support container-level SAS/SAT tokens for Azure backend * Fix [#5047](https://github.com/restic/restic/pull/5047): Resolve potential error during concurrent cache cleanup * Fix [#5050](https://github.com/restic/restic/issues/5050): Return error if `tag` fails to lock repository * Fix [#5057](https://github.com/restic/restic/pull/5057): Exclude irregular files from backups * Fix [#5063](https://github.com/restic/restic/issues/5063): Correctly `backup` extended metadata when using VSS on Windows Details ------- * Bugfix #4004: Support container-level SAS/SAT tokens for Azure backend Restic previously expected SAS/SAT tokens to be generated at the account level, which prevented tokens created at the container level from being used to initialize a repository. This caused an error when attempting to initialize a repository with container-level tokens. Restic now supports both account-level and container-level SAS/SAT tokens for initializing a repository. [#4004](https://github.com/restic/restic/issues/4004) [#5093](https://github.com/restic/restic/pull/5093) * Bugfix #5047: Resolve potential error during concurrent cache cleanup When multiple restic processes ran concurrently, they could compete to remove obsolete snapshots from the local backend cache, sometimes leading to a "no such file or directory" error. Restic now suppresses this error to prevent issues during cache cleanup. [#5047](https://github.com/restic/restic/pull/5047) * Bugfix #5050: Return error if `tag` fails to lock repository Since restic 0.17.0, the `tag` command did not return an error when it failed to open or lock the repository. This issue has now been fixed. [#5050](https://github.com/restic/restic/issues/5050) [#5056](https://github.com/restic/restic/pull/5056) * Bugfix #5057: Exclude irregular files from backups Since restic 0.17.1, files with the type `irregular` could mistakenly be included in snapshots, especially when backing up special file types on Windows that restic cannot process. This issue has now been fixed. Previously, this bug caused the `check` command to report errors like the following one: ``` tree 12345678[...]: node "example.zip" with invalid type "irregular" ``` To repair affected snapshots, upgrade to restic 0.17.2 and run: ``` restic repair snapshots --forget ``` This will remove the `irregular` files from the snapshots (creating a new snapshot ID for each of the affected snapshots). [#5057](https://github.com/restic/restic/pull/5057) https://forum.restic.net/t/errors-found-by-check-1-invalid-type-irregular-2-ciphertext-verification-failed/8447/2 * Bugfix #5063: Correctly `backup` extended metadata when using VSS on Windows On Windows, when creating a backup with the `--use-fs-snapshot` option, restic read extended metadata from the original filesystem path instead of from the snapshot. This could result in errors if files were removed during the backup process. This issue has now been resolved. [#5063](https://github.com/restic/restic/issues/5063) [#5097](https://github.com/restic/restic/pull/5097) [#5099](https://github.com/restic/restic/pull/5099) ### v0.17.1 — restic 0.17.1 - Date: 2024-09-05 - Version: v0.17.1 - Original notes: https://github.com/restic/restic/releases/tag/v0.17.1 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.17.1 Changelog for restic 0.17.1 (2024-09-05) ======================================= The following sections list the changes in restic 0.17.1 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#2004](https://github.com/restic/restic/issues/2004): Correctly handle volume names in `backup` command on Windows * Fix [#4945](https://github.com/restic/restic/issues/4945): Include missing backup error text with `--json` * Fix [#4953](https://github.com/restic/restic/issues/4953): Correctly handle long paths on older Windows versions * Fix [#4957](https://github.com/restic/restic/issues/4957): Fix delayed cancellation of certain commands * Fix [#4958](https://github.com/restic/restic/pull/4958): Don't ignore metadata-setting errors during restore * Fix [#4969](https://github.com/restic/restic/issues/4969): Correctly restore timestamp for files with resource forks on macOS * Fix [#4975](https://github.com/restic/restic/issues/4975): Prevent `backup --stdin-from-command` from panicking * Fix [#4980](https://github.com/restic/restic/pull/4980): Skip extended attribute processing on unsupported Windows volumes * Fix [#5004](https://github.com/restic/restic/issues/5004): Fix spurious "A Required Privilege Is Not Held by the Client" error * Fix [#5005](https://github.com/restic/restic/issues/5005): Fix rare failures to retry locking a repository * Fix [#5018](https://github.com/restic/restic/pull/5018): Improve HTTP/2 support for REST backend * Chg [#4953](https://github.com/restic/restic/issues/4953): Also back up files with incomplete metadata * Enh [#4795](https://github.com/restic/restic/issues/4795): Display progress bar for `restore --verify` * Enh [#4934](https://github.com/restic/restic/issues/4934): Automatically clear removed snapshots from cache * Enh [#4944](https://github.com/restic/restic/issues/4944): Print JSON-formatted errors during `restore --json` * Enh [#4959](https://github.com/restic/restic/pull/4959): Return exit code 12 for "bad password" errors * Enh [#4970](https://github.com/restic/restic/issues/4970): Make timeout for stuck requests customizable Details ------- * Bugfix #2004: Correctly handle volume names in `backup` command on Windows On Windows, when the specified backup target only included the volume name without a trailing slash, for example, `C:`, then restoring the resulting snapshot would result in an error. Note that using `C:\` as backup target worked correctly. Specifying volume names is now handled correctly. To restore snapshots created before this bugfix, use the : syntax. For example, to restore a snapshot with ID `12345678` that backed up `C:`, use the following command: ``` restic restore 12345678:/C/C:./ --target output/folder ``` [#2004](https://github.com/restic/restic/issues/2004) [#5028](https://github.com/restic/restic/pull/5028) * Bugfix #4945: Include missing backup error text with `--json` Previously, when running a backup with the `--json` option, restic failed to include the actual error message in the output, resulting in `"error": {}` being displayed. This has now been fixed, and restic now includes the error text in JSON output. [#4945](https://github.com/restic/restic/issues/4945) [#4946](https://github.com/restic/restic/pull/4946) * Bugfix #4953: Correctly handle long paths on older Windows versions On older Windows versions, like Windows Server 2012, restic 0.17.0 failed to back up files with long paths. This problem has now been resolved. [#4953](https://github.com/restic/restic/issues/4953) [#4954](https://github.com/restic/restic/pull/4954) * Bugfix #4957: Fix delayed cancellation of certain commands Since restic 0.17.0, some commands did not immediately respond to cancellation via Ctrl-C (SIGINT) and continued running for a short period. The most affected commands were `diff`,`find`, `ls _[Truncated at 4000 characters — full notes: https://github.com/restic/restic/releases/tag/v0.17.1]_ ### v0.17.0 — restic 0.17.0 - Date: 2024-07-26 - Version: v0.17.0 - Original notes: https://github.com/restic/restic/releases/tag/v0.17.0 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.17.0 Changelog for restic 0.17.0 (2024-07-26) ======================================= The following sections list the changes in restic 0.17.0 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#3600](https://github.com/restic/restic/issues/3600): Handle unreadable xattrs in folders above `backup` source * Fix [#4209](https://github.com/restic/restic/issues/4209): Fix slow SFTP upload performance * Fix [#4503](https://github.com/restic/restic/pull/4503): Correct hardlink handling in `stats` command * Fix [#4568](https://github.com/restic/restic/pull/4568): Prevent `forget --keep-tags ` from deleting all snapshots * Fix [#4615](https://github.com/restic/restic/pull/4615): Make `find` not sometimes ignore directories * Fix [#4656](https://github.com/restic/restic/issues/4656): Properly report ID of newly added keys * Fix [#4703](https://github.com/restic/restic/pull/4703): Shutdown cleanly when receiving SIGTERM * Fix [#4709](https://github.com/restic/restic/pull/4709): Correct `--no-lock` handling of `ls` and `tag` commands * Fix [#4760](https://github.com/restic/restic/issues/4760): Fix possible error on concurrent cache cleanup * Fix [#4850](https://github.com/restic/restic/issues/4850): Handle UTF-16 password files in `key` command correctly * Fix [#4902](https://github.com/restic/restic/issues/4902): Update snapshot summary on `rewrite` * Chg [#956](https://github.com/restic/restic/issues/956): Return exit code 10 and 11 for non-existing and locked repository * Chg [#4540](https://github.com/restic/restic/issues/4540): Require at least ARMv6 for ARM binaries * Chg [#4602](https://github.com/restic/restic/issues/4602): Deprecate legacy index format and `s3legacy` repository layout * Chg [#4627](https://github.com/restic/restic/issues/4627): Redesign backend error handling to improve reliability * Chg [#4707](https://github.com/restic/restic/issues/4707): Disable S3 anonymous authentication by default * Chg [#4744](https://github.com/restic/restic/issues/4744): Include full key ID in JSON output of `key list` * Enh [#662](https://github.com/restic/restic/issues/662): Optionally skip snapshot creation if nothing changed * Enh [#693](https://github.com/restic/restic/issues/693): Include snapshot size in `snapshots` output * Enh [#805](https://github.com/restic/restic/issues/805): Add bitrot detection to `diff` command * Enh [#828](https://github.com/restic/restic/issues/828): Improve features of the `repair packs` command * Enh [#1786](https://github.com/restic/restic/issues/1786): Support repositories with empty password * Enh [#2348](https://github.com/restic/restic/issues/2348): Add `--delete` option to `restore` command * Enh [#3067](https://github.com/restic/restic/pull/3067): Add extended options to configure Windows Shadow Copy Service * Enh [#3406](https://github.com/restic/restic/issues/3406): Improve `dump` performance for large files * Enh [#3806](https://github.com/restic/restic/issues/3806): Optimize and make `prune` command resumable * Enh [#4006](https://github.com/restic/restic/pull/4006): (alpha) Store deviceID only for hardlinks * Enh [#4048](https://github.com/restic/restic/issues/4048): Add support for FUSE-T with `mount` on macOS * Enh [#4251](https://github.com/restic/restic/issues/4251): Support reading backup from a command's standard output * Enh [#4287](https://github.com/restic/restic/issues/4287): Support connection to rest-server using unix socket * Enh [#4354](https://github.com/restic/restic/pull/4354): Significantly reduce `prune` memory usage * Enh [#4437](https://github.com/restic/restic/issues/4437): Make `check` command create non-existent cache directory * Enh [#4472](https://github.com/restic/restic/issues/4472): Support AWS Assume Role for S3 backend * Enh [#4547](https://github.com/restic/restic/issues/4547): Add `--json` option to `version` command * Enh [#4549](https: _[Truncated at 4000 characters — full notes: https://github.com/restic/restic/releases/tag/v0.17.0]_ ### v0.16.5 — restic 0.16.5 - Date: 2024-07-01 - Version: v0.16.5 - Original notes: https://github.com/restic/restic/releases/tag/v0.16.5 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.16.5 Changelog for restic 0.16.5 (2024-07-01) ======================================= The following sections list the changes in restic 0.16.5 relevant to restic users. The changes are ordered by importance. Summary ------- * Enh [#4799](https://github.com/restic/restic/pull/4799): Add option to force use of Azure CLI credential * Enh [#4873](https://github.com/restic/restic/issues/4873): Update dependencies Details ------- * Enhancement #4799: Add option to force use of Azure CLI credential A new environment variable `AZURE_FORCE_CLI_CREDENTIAL=true` allows forcing the use of Azure CLI credential, ignoring other credentials like managed identity. [#4799](https://github.com/restic/restic/pull/4799) * Enhancement #4873: Update dependencies A few potentially vulnerable dependencies were updated. [#4873](https://github.com/restic/restic/issues/4873) [#4878](https://github.com/restic/restic/pull/4878) ### v0.16.4 — restic 0.16.4 - Date: 2024-02-04 - Version: v0.16.4 - Original notes: https://github.com/restic/restic/releases/tag/v0.16.4 - Permalink: https://whatsnew.fyi/product/restic/releases/v0.16.4 This release works around and improves detection of a bug in the compression library used by restic. The resulting issue only happens when using restic 0.16.3 and the `max` compression level (the default `auto` and `off` compression levels are not affected), and when the source files being backed up have specific data in them to trigger the bug. If you use `max` compression, you can use `restic check --read-data` to make sure you're not affected. restic is distributed as a standalone binary: download the correct file for your operating system and architecture, extract the file and just run it. If you run into any issues, please report them at [the GitHub issue tracker](https://github.com/restic/restic/issues/new) or visit [the forum](https://forum.restic.net). If you already have restic >= 0.9.4, you can use `restic self-update` to get the latest version in a secure way. The binaries released with each restic version are [reproducible](https://reproducible-builds.org/), which means that you can reproduce a byte identical version from the source code for that release. Instructions on how to do that in the [Developer Documentation](https://github.com/restic/restic/blob/master/doc/developer_information.rst). Changelog for restic 0.16.4 (2024-02-04) ======================================= The following sections list the changes in restic 0.16.4 relevant to restic users. The changes are ordered by importance. Summary ------- * Fix [#4677](https://github.com/restic/restic/issues/4677): Downgrade zstd library to fix rare data corruption at max. compression * Enh [#4529](https://github.com/restic/restic/issues/4529): Add extra verification of data integrity before upload Details ------- * Bugfix #4677: Downgrade zstd library to fix rare data corruption at max. compression In restic 0.16.3, 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 compressing data. Restic 0.16.1 and 0.16.2 were not affected. Restic now uses the previous version of the library used to compress data, the same version used by restic 0.16.2. Please note that the `auto` compression level (which restic uses by default) was never affected, and even if you used `max` compression, chances of being affected by this issue are small. To check a repository for any corruption, run `restic check --read-data`. This will download and verify the whole repository and can be used at any time to completely verify the integrity of a repository. If the `check` command detects anomalies, follow the suggested steps. [#4677](https://github.com/restic/restic/issues/4677) [#4679](https://github.com/restic/restic/pull/4679) * Enhancement #4529: Add extra verification of data integrity before upload Hardware issues, or a bug in restic or its dependencies, could previously cause corruption in the files restic created and stored in the repository. Detecting such corruption previously required explicitly running the `check --read-data` or `check --read-data-subset` commands. To further ensure data integrity, even in the case of hardware issues or software bugs, restic now performs additional verification of the files about to be uploaded to the repository. These extra checks will increase CPU usage during backups. They can therefore, if absolutely necessary, be disabled using the `--no-extra-verify` global option. Please note that this should be combined with more active checking using the previously mentioned check commands. [#4529](https://github.com/restic/restic/issues/4529) [#4681](https://github.com/restic/restic/pull/4681)