diff --git a/changelog/unreleased/issue-3326 b/changelog/unreleased/issue-3326 index c6246e489..50f271fa2 100644 --- a/changelog/unreleased/issue-3326 +++ b/changelog/unreleased/issue-3326 @@ -1,8 +1,8 @@ -Enhancement: `restic check` for specified snapshot(s) via snapshot filtering +Enhancement: Limit `check` to snapshots selected by filters -Snapshots can now be specified for the command `restic check` on the command line -via the standard snapshot filter, (`--tag`, `--host`, `--path` or specifying -snapshot IDs directly) and will be used for checking the packfiles used by these snapshots. +The `check` command can now restrict pack verification to snapshots chosen with +the usual snapshot filters (`--tag`, `--host`, `--path`, or explicit snapshot +IDs on the command line). https://github.com/restic/restic/issues/3326 https://github.com/restic/restic/pull/5469 diff --git a/changelog/unreleased/issue-3572 b/changelog/unreleased/issue-3572 index 9ae9841ac..df9cd343d 100644 --- a/changelog/unreleased/issue-3572 +++ b/changelog/unreleased/issue-3572 @@ -1,9 +1,10 @@ Enhancement: Support restoring ownership by name on UNIX systems Restic restore used to restore file ownership on UNIX systems by UID and GID. -It now allows restoring the file ownership by user name and group name with `--ownership-by-name`. -This allows restoring snapshots on a system where the UID/GID are not the same as they were on the system where the snapshot was created. -However it does not include support for POSIX ACLs, which are still restored by their numeric value. +It now allows restoring ownership by user and group name with +`--ownership-by-name`, so snapshots can be restored on systems where numeric IDs +do not match the backup host. POSIX ACLs are still restored by numeric value; +this change does not add ACL-by-name support. https://github.com/restic/restic/issues/3572 https://github.com/restic/restic/pull/5449 diff --git a/changelog/unreleased/issue-3738 b/changelog/unreleased/issue-3738 index 479c6c58a..490353c57 100644 --- a/changelog/unreleased/issue-3738 +++ b/changelog/unreleased/issue-3738 @@ -1,8 +1,12 @@ -Enhancement: Allow Github personal access token to be specified for `self-update` +Enhancement: Optional GitHub token for `self-update` API requests -`restic self-update` previously only used unauthenticated GitHub API requests when checking for the latest release. This caused some users sharing IP addresses to hit the GitHub rate limit, resulting in a 403 Forbidden error and preventing updates. +`restic self-update` used only unauthenticated GitHub API requests when +checking for releases. Shared IP addresses could hit the GitHub rate limit, +resulting in a 403 Forbidden error and preventing updates. -Restic still uses unauthenticated requests by default, but it now optionally supports authenticated GitHub API requests during `self-update`. Users can set the `$GITHUB_ACCESS_TOKEN` environment variable to use a [personal access token](https://github.com/settings/tokens) for this effect, avoiding update failures due to rate limiting. +Unauthenticated requests remain the default, but authenticated requests are now +optional. Set the environment variable `GITHUB_ACCESS_TOKEN` to a GitHub +[personal access token](https://github.com/settings/tokens) to avoid rate-limit failures. https://github.com/restic/restic/issues/3738 -https://github.com/restic/restic/pull/5568 \ No newline at end of file +https://github.com/restic/restic/pull/5568 diff --git a/changelog/unreleased/issue-4278 b/changelog/unreleased/issue-4278 index 5a88dbed9..be0d8f21d 100644 --- a/changelog/unreleased/issue-4278 +++ b/changelog/unreleased/issue-4278 @@ -1,12 +1,8 @@ -Enhancement: Support include filters in `rewrite` command +Enhancement: Support include filters in the `rewrite` command -The enhancement enables the standard include filter options - --iinclude pattern same as --include pattern but ignores the casing of filenames - --iinclude-file file same as --include-file but ignores casing of filenames in patterns - -i, --include pattern include a pattern (can be specified multiple times) - --include-file file read include patterns from a file (can be specified multiple times) - -The exclusion or inclusion of filter parameters is exclusive, as in other commands. +The `rewrite` command now accepts the same include filter options as the `restore` +command (`--include`, `--include-file`, `--iinclude`, `--iinclude-file`, and +short `-i`). Include and exclude filter options are mutually exclusive. https://github.com/restic/restic/issues/4278 https://github.com/restic/restic/pull/5191 diff --git a/changelog/unreleased/issue-4467 b/changelog/unreleased/issue-4467 index fe42657cb..6b94f1085 100644 --- a/changelog/unreleased/issue-4467 +++ b/changelog/unreleased/issue-4467 @@ -1,11 +1,11 @@ -Bugfix: Exit with code 3 when some `backup` source files do not exist +Bugfix: Exit with code 3 when some `backup` source paths do not exist -Restic used to exit with code 0 even when some backup sources did not exist. Restic -would exit with code 3 only when child directories or files did not exist. This -could cause confusion and unexpected behavior in scripts that relied on the exit -code to determine if the backup was successful. +Restic used to exit with code 0 when a top-level backup source path was +missing, and exited with code 3 only when a child path under an existing source +did not exist. Scripts that relied on the exit code could treat an incomplete +backup as success. -Restic now exits with code 3 when some backup sources do not exist. +Restic now exits with code 3 when any backup source path does not exist. https://github.com/restic/restic/issues/4467 -https://github.com/restic/restic/pull/5347 \ No newline at end of file +https://github.com/restic/restic/pull/5347 diff --git a/changelog/unreleased/issue-4728 b/changelog/unreleased/issue-4728 index e0149e675..ee62b05ac 100644 --- a/changelog/unreleased/issue-4728 +++ b/changelog/unreleased/issue-4728 @@ -1,7 +1,8 @@ -Enhancement: Added support for zstd compression levels `fastest` and `better` +Enhancement: Support zstd compression levels `fastest` and `better` Restic now supports the zstd compression modes `fastest` and `better`. Set the -environment variable `RESTIC_COMPRESSION` to `fastest` or `better` to use these -compression levels. This can also be set with the `--compression` flag. +environment variable `RESTIC_COMPRESSION` to `fastest` or `better`, or pass the +same values with `--compression`. https://github.com/restic/restic/issues/4728 +https://github.com/restic/restic/pull/5321 diff --git a/changelog/unreleased/issue-4759 b/changelog/unreleased/issue-4759 index e4ef0f836..544e8a815 100644 --- a/changelog/unreleased/issue-4759 +++ b/changelog/unreleased/issue-4759 @@ -1,9 +1,9 @@ -Bugfix: Return error if environment variables contain invalid values +Bugfix: Error out when environment variables hold invalid values -If the value of one of the environment variables `RESTIC_COMPRESSION`, `RESTIC_PACK_SIZE` -or `RESTIC_READ_CONCURRENCY` could not be parsed, then restic ignored their value. -Now, the restic commands fail with an error, unless they were overwritten with their -corresponding command-line option. +If the environment variables `RESTIC_COMPRESSION`, `RESTIC_PACK_SIZE`, or +`RESTIC_READ_CONCURRENCY` could not be parsed, restic used to ignore them. Restic +now fails with an error unless the same setting is overridden on the command +line. https://github.com/restic/restic/issues/4759 https://github.com/restic/restic/pull/5592 diff --git a/changelog/unreleased/issue-4868 b/changelog/unreleased/issue-4868 index 001f7618b..504e6836a 100644 --- a/changelog/unreleased/issue-4868 +++ b/changelog/unreleased/issue-4868 @@ -1,8 +1,8 @@ -Enhancement: Include repository id in filesystem name used by `mount` +Enhancement: Include repository id in the filesystem name used by `mount` -The filesystem created by restic's `mount` command now includes the repository -id in the filesystem name. The repository id is printed by restic when opening -a repository or can be looked up using `restic cat config`. +The filesystem exposed by the `mount` command now includes the repository id in +its name. The id is printed when opening a repository or can be read with +`restic cat config`. ``` [restic-user@hostname restic]$ df ./test-mount/ @@ -11,4 +11,4 @@ restic:d3b07384d1 0 0 0 - /mnt/my-restic-repo ``` https://github.com/restic/restic/issues/4868 -https://github.com/restic/restic/pull/5243 \ No newline at end of file +https://github.com/restic/restic/pull/5243 diff --git a/changelog/unreleased/issue-5233 b/changelog/unreleased/issue-5233 index 14ff2b249..3a1e790ac 100644 --- a/changelog/unreleased/issue-5233 +++ b/changelog/unreleased/issue-5233 @@ -1,8 +1,8 @@ -Bugfix: forget command returns exit code 3 on partial removal of snapshots +Bugfix: `forget` returns exit code 3 when snapshot removal is partial The `forget` command now returns exit code 3 when it fails to remove one or -more snapshots. Previously, it returned exit code 0, which could lead to -confusion if the command was used in a script. +more snapshots. It previously returned exit code 0, which was misleading in +scripts. https://github.com/restic/restic/issues/5233 https://github.com/restic/restic/pull/5322 diff --git a/changelog/unreleased/issue-5258 b/changelog/unreleased/issue-5258 index 1c8ffc75b..9fc54ff5b 100644 --- a/changelog/unreleased/issue-5258 +++ b/changelog/unreleased/issue-5258 @@ -1,7 +1,7 @@ -Bugfix: Exit with correct code on SIGINT +Bugfix: Exit with code 130 on SIGINT -Restic previously returned exit code 1 on SIGINT, which is incorrect. -Restic now returns 130 on SIGINT. +Restic used to return exit code 1 on SIGINT. It now returns 130, the usual +convention for a process stopped by Ctrl-C. https://github.com/restic/restic/issues/5258 -https://github.com/restic/restic/pull/5363 \ No newline at end of file +https://github.com/restic/restic/pull/5363 diff --git a/changelog/unreleased/issue-5280 b/changelog/unreleased/issue-5280 index 9714e3c43..c7db75686 100644 --- a/changelog/unreleased/issue-5280 +++ b/changelog/unreleased/issue-5280 @@ -1,7 +1,7 @@ -Bugfix: `restic find` now checks for correct ordering of time related options +Bugfix: Reject impossible `find` time bounds immediately -`restic find` now immediately fails with an error if both `--oldest` and `--newest` are specified -and `--oldest` is a timestamp after `--newest`. +`restic find` now fails with an error when both `--oldest` and `--newest` are +set and `--oldest` is later than `--newest`. https://github.com/restic/restic/issues/5280 https://github.com/restic/restic/pull/5310 diff --git a/changelog/unreleased/issue-5352 b/changelog/unreleased/issue-5352 index c67ae0da1..6de23c591 100644 --- a/changelog/unreleased/issue-5352 +++ b/changelog/unreleased/issue-5352 @@ -1,11 +1,11 @@ -Enhancement: Add support for --exclude-cloud-files on macOS (e.g. iCloud drive) +Enhancement: Add `--exclude-cloud-files` on macOS (e.g. iCloud Drive) -Restic treated files stored in iCloud drive as though they were regular files. -This caused restic to download all files (including files marked as cloud only) while iterating over them. +Restic treated iCloud-backed files like ordinary local files, which forced a +full download of placeholders and other cloud-only content during backups. -Restic now allows the user to exclude these files when backing up with the `--exclude-cloud-files` option. +The `backup` command now supports `--exclude-cloud-files` to skip those files on +supported macOS versions. From Sonoma (macOS 14.0) onward the option can prevent +unwanted downloads. -Works from Sonoma (macOS 14.0) onwards. Older macOS versions materialize files when `stat` is called on the file. - -https://github.com/restic/restic/pull/4990 https://github.com/restic/restic/issues/5352 +https://github.com/restic/restic/pull/4990 diff --git a/changelog/unreleased/issue-5354 b/changelog/unreleased/issue-5354 index d69d9fd2b..df069ab52 100644 --- a/changelog/unreleased/issue-5354 +++ b/changelog/unreleased/issue-5354 @@ -1,10 +1,9 @@ -Bugfix: Allow use of rclone/sftp backend when running restic in background +Bugfix: Allow `rclone` and `sftp` backends when restic runs in the background -When starting restic in the background, this could result in unexpected behavior -when using the rclone or sftp backend. - -For example running `restic -r rclone:./example --insecure-no-password init &` -could cause the calling `bash` shell to exit unexpectedly. +Starting restic in the background could result in unexpected behavior when using +the `rclone` or `sftp` backend. For example, +`restic -r rclone:./example --insecure-no-password init &` could cause the +calling `bash` shell to exit unexpectedly. This has been fixed. diff --git a/changelog/unreleased/issue-5383 b/changelog/unreleased/issue-5383 index 54778a181..d1abcbb12 100644 --- a/changelog/unreleased/issue-5383 +++ b/changelog/unreleased/issue-5383 @@ -1,9 +1,9 @@ Enhancement: Reduce progress bar refresh rates to reduce energy usage -Progress bars were updated with 60fps which can cause high CPU or GPU usage -for some terminal emulators. Reduce it to 10fps to conserve energy. -In addition, this lower frequency seem to be necessary to allow selecting -anything in the terminal with certain terminal emulators. +Progress bars were updated at 60 fps, which could cause high CPU or GPU usage +in some terminal emulators. The refresh rate is now 10 fps to conserve energy. +The lower rate also makes it possible to select text in the terminal with some +emulators. https://github.com/restic/restic/issues/5383 https://github.com/restic/restic/pull/5551 diff --git a/changelog/unreleased/issue-5440 b/changelog/unreleased/issue-5440 index 895542898..4ead0d3a6 100644 --- a/changelog/unreleased/issue-5440 +++ b/changelog/unreleased/issue-5440 @@ -1,11 +1,10 @@ -Enhancement: Allow overriding RESTIC_HOST environment variable with --host flag +Enhancement: Override the environment variable `RESTIC_HOST` with `--host` -When the `RESTIC_HOST` environment variable was set, there was no way to list or -operate on snapshots from all hosts, as the environment variable would always -filter to that specific host. Restic now allows overriding `RESTIC_HOST` by -explicitly providing the `--host` flag with an empty string (e.g., `--host=""` or -`--host=`), which will show snapshots from all hosts. This works for all commands -that support snapshot filtering: `snapshots`, `forget`, `find`, `stats`, `copy`, +When the environment variable `RESTIC_HOST` was set, snapshot listings and +other operations were always filtered to that host. Passing `--host` as an empty +string (`--host=""` or `--host=`) now overrides `RESTIC_HOST` and shows +snapshots from all hosts. The same override applies to commands that support +snapshot filters, including `snapshots`, `forget`, `find`, `stats`, `copy`, `tag`, `repair snapshots`, `rewrite`, `mount`, `restore`, `dump`, and `ls`. https://github.com/restic/restic/issues/5440 diff --git a/changelog/unreleased/issue-5453 b/changelog/unreleased/issue-5453 index 12c09e0b0..0007db5e2 100644 --- a/changelog/unreleased/issue-5453 +++ b/changelog/unreleased/issue-5453 @@ -1,10 +1,11 @@ Enhancement: `copy` copies snapshots in batches -The `copy` command used to copy snapshots individually, even if this resulted in creating pack files -smaller than the target pack size. In particular, this resulted in many small files -when copying small incremental snapshots. +The `copy` command used to copy snapshots one at a time, even when that +produced pack files smaller than the target pack size. That led to many small +files when copying small incremental snapshots. -Now, `copy` copies multiple snapshots at once to avoid creating small files. +The `copy` command now copies multiple snapshots together so small pack files +are avoided where possible. -https://github.com/restic/restic/issues/5175 -https://github.com/restic/restic/pull/5464 +https://github.com/restic/restic/issues/5453 +https://github.com/restic/restic/pull/5472 diff --git a/changelog/unreleased/issue-5477 b/changelog/unreleased/issue-5477 index f56cca84b..0af268130 100644 --- a/changelog/unreleased/issue-5477 +++ b/changelog/unreleased/issue-5477 @@ -1,7 +1,7 @@ -Bugfix: Password prompt was sometimes not shown +Bugfix: Password prompt was sometimes not shown for `backup -v` -The password prompt for a repository was sometimes not shown when running -the `backup -v` command. This has been fixed. +The repository password prompt could be missing when running the `backup -v` +command. This has been fixed. https://github.com/restic/restic/issues/5477 https://github.com/restic/restic/pull/5554 diff --git a/changelog/unreleased/issue-5487 b/changelog/unreleased/issue-5487 index ddac79d10..7cafc87e2 100644 --- a/changelog/unreleased/issue-5487 +++ b/changelog/unreleased/issue-5487 @@ -1,8 +1,7 @@ -Bugfix: Mark files as readonly when using the SFTP backend +Bugfix: Mark files read-only when using the SFTP backend -Files created by the SFTP backend previously allowed writes to those files. -Restic now restricts the file permissions on SFTP backend to readonly. -This change only has an effect for sftp servers with support for the chmod operation. +Files created through the SFTP backend previously stayed writable. New files now +get read-only permissions where the server supports `chmod`. https://github.com/restic/restic/issues/5487 https://github.com/restic/restic/pull/5497 diff --git a/changelog/unreleased/issue-5531 b/changelog/unreleased/issue-5531 index 3cad4e624..c1606e598 100644 --- a/changelog/unreleased/issue-5531 +++ b/changelog/unreleased/issue-5531 @@ -1,15 +1,12 @@ -Enhancement: Reduce Azure storage costs by optimizing upload method +Enhancement: Reduce Azure storage costs by optimizing uploads -Restic previously used Azure's PutBlock and PutBlockList APIs for all file -uploads, which resulted in two transactions per file and doubled the storage -operation costs. For backups with many pack files, this could lead to -significant Azure storage transaction fees. +Restic previously used Azure PutBlock and PutBlockList for every upload, which +cost two storage transactions per file and roughly doubled transaction charges +for repositories with many pack files. -Restic now uses the more efficient PutBlob API for files up to 256 MiB, -requiring only a single transaction per file. This reduces Azure storage -operation costs by approximately 50% for typical backup workloads. Files -larger than 256 MiB continue to use the block-based upload method as required -by Azure's API limits. +Files up to 256 MiB now use PutBlob, a single transaction per file, cutting +typical transaction costs about in half. Larger blobs still use block uploads as +required by Azure. https://github.com/restic/restic/issues/5531 https://github.com/restic/restic/pull/5544 diff --git a/changelog/unreleased/issue-5562 b/changelog/unreleased/issue-5562 index 446cdfa51..8afbe85ea 100644 --- a/changelog/unreleased/issue-5562 +++ b/changelog/unreleased/issue-5562 @@ -1,10 +1,10 @@ -Enhancement: Do not rewrite unchanged lines every frame in status bar +Enhancement: Rewrite only changed status lines each frame -Status bars were entirely rewritten every frame if any of its content has updated. -This behavior had made any user interaction (such as selection) with status bar -impossible in certain terminal emulators, even with the unchanged lines. -Now it writes changed lines only at status bar update, thereby improving -user experience in those terminal emulators. +The status bar rewrote every line on each frame whenever any content changed, +which made selecting text impossible in some terminal emulators even when most +lines were unchanged. + +Now only lines that actually change are rewritten on each update. https://github.com/restic/restic/issues/5562 https://github.com/restic/restic/pull/5648 diff --git a/changelog/unreleased/issue-5586 b/changelog/unreleased/issue-5586 index 805de5590..5f5a25090 100644 --- a/changelog/unreleased/issue-5586 +++ b/changelog/unreleased/issue-5586 @@ -1,7 +1,7 @@ -Bugfix: correctly handle `snapshots --group-by` in combination with `--latest` +Bugfix: Correctly handle `snapshots --group-by` with `--latest` -For the `snapshots` command, the `--latest` option did not correctly handle the -case where an non-default value was passed to `--group-by`. This has been fixed. +For the `snapshots` command, `--latest` did not interact correctly with a +non-default `--group-by` value. That combination now behaves as intended. https://github.com/restic/restic/issues/5586 https://github.com/restic/restic/pull/5601 diff --git a/changelog/unreleased/issue-5595 b/changelog/unreleased/issue-5595 index a5b6706f0..b75c3c7a7 100644 --- a/changelog/unreleased/issue-5595 +++ b/changelog/unreleased/issue-5595 @@ -1,8 +1,8 @@ -Bugfix: Fix "chmod not supported" errors when unlocking +Bugfix: Avoid spurious `chmod` errors when unlocking on file backends -Restic 0.18.0 introduced a bug that caused "chmod xxx: operation not supported" -errors to appear when unlocking with a stale lock, on a local file repository -that did not support chmod (like CIFS or WebDAV mounted via FUSE). Restic now -just doesn't bother calling chmod in that case on Unix, as it is unnecessary. +On filesystems that do not support `chmod` (for example CIFS or FUSE-mounted WebDAV), +restic 0.18.0 failed to remove stale locks with the error `chmod …: operation not supported`. +This has been fixed. https://github.com/restic/restic/issues/5595 +https://github.com/restic/restic/pull/5596 diff --git a/changelog/unreleased/issue-5757 b/changelog/unreleased/issue-5757 index 33e34fafe..9ce395eb5 100644 --- a/changelog/unreleased/issue-5757 +++ b/changelog/unreleased/issue-5757 @@ -1,8 +1,8 @@ -Bugfix: respect `--user` and `--host` in `key passwd` +Bugfix: Respect `--user` and `--host` in `key passwd` -The `key passwd` command silently ignored the `--user` and `--host` flags -and always recorded the new key with the current user and host name. -This has been fixed, +The `key passwd` command ignored the `--user` and `--host` options +and always stored the new key with the current user and host name. +It now honors those options. https://github.com/restic/restic/issues/5757 -https://github.com/restic/restic/pull/21781 \ No newline at end of file +https://github.com/restic/restic/pull/21781 diff --git a/changelog/unreleased/pull-21784 b/changelog/unreleased/pull-21784 index 012505234..1d77d5009 100644 --- a/changelog/unreleased/pull-21784 +++ b/changelog/unreleased/pull-21784 @@ -4,6 +4,6 @@ A repository mounted using `restic mount` on a POSIX system, could not use Samba to export files from restic backups of Windows systems. Backups of other systems were not affected. This has been fixed. -https://github.com/restic/restic/pull/21784 https://github.com/restic/restic/issues/2034 https://github.com/restic/restic/issues/4382 +https://github.com/restic/restic/pull/21784 diff --git a/changelog/unreleased/pull-21796 b/changelog/unreleased/pull-21796 index d0a259695..47c15feb7 100644 --- a/changelog/unreleased/pull-21796 +++ b/changelog/unreleased/pull-21796 @@ -1,8 +1,8 @@ Change: Update dependencies and require Go 1.25 or newer -We have updated all dependencies. Restic now requires Go 1.25 or newer to build. -In addition, the Windows build of restic using Go 1.26 was fixed. +Dependencies have been updated. Building restic now requires Go 1.25 or newer. +The Windows build with Go 1.26 was also fixed. -https://github.com/restic/restic/pull/21796 -https://github.com/restic/restic/pull/5619 https://github.com/restic/restic/issues/21791 +https://github.com/restic/restic/pull/5619 +https://github.com/restic/restic/pull/21796 diff --git a/changelog/unreleased/pull-5319 b/changelog/unreleased/pull-5319 index ae1e5fdf1..7b12d9e21 100644 --- a/changelog/unreleased/pull-5319 +++ b/changelog/unreleased/pull-5319 @@ -1,9 +1,8 @@ -Enhancement: add more status counters to `restic copy` +Enhancement: Add status counters to `copy` in verbose text output -`restic copy` now produces more status counters in text format. The new counters -are the number of blobs to copy, their size on disk and the number of packfiles -used from the source repository. The additional statistics is only produced when -the `--verbose` option is specified. +`restic copy` now prints additional counters in text mode when `--verbose` is +set: blobs to copy, their on-disk size, and how many pack files are read from +the source repository. https://github.com/restic/restic/issues/5175 https://github.com/restic/restic/pull/5319 diff --git a/changelog/unreleased/pull-5424 b/changelog/unreleased/pull-5424 index 43fbe7fdf..f3bde47bf 100644 --- a/changelog/unreleased/pull-5424 +++ b/changelog/unreleased/pull-5424 @@ -1,11 +1,10 @@ -Enhancement: Enable file system privileges on Windows before access +Enhancement: Enable Windows filesystem privileges before file access -Restic attempted to enable Windows file system privileges when -reading or writing security descriptors - after potentially being wholly -denied access to previous items. It also read file extended attributes without -using the privilege, possibly missing them and producing errors. +Restic enabled some Windows filesystem privileges only while reading or writing +security descriptors. Extended attributes could be read before enabling the backup +privilege, possibly resulting in missed data or errors. -Restic now attempts to enable all file system privileges before any file -access. It also requests extended attribute reads use the backup privilege. +Restic now enables the relevant filesystem privileges before any file access and +requests extended-attribute reads with the backup privilege where needed. https://github.com/restic/restic/pull/5424 diff --git a/changelog/unreleased/pull-5448 b/changelog/unreleased/pull-5448 index e0cafd43e..a407d8db7 100644 --- a/changelog/unreleased/pull-5448 +++ b/changelog/unreleased/pull-5448 @@ -1,11 +1,19 @@ -Enhancement: Allow nice and ionice configuration for restic containers +Enhancement: Configure nice and ionice in the official Docker image -The official restic docker now supports the following environment variables: +The container entrypoint now reads optional scheduling hints from the +environment: -`NICE`: set the desired nice scheduling. See `man nice`. -`IONICE_CLASS`: set the desired I/O scheduling class. See `man ionice`. Note that real time support requires the invoker to manually add the `SYS_NICE` capability. -`IONICE_PRIORITY`: set the prioritization for ionice in the given `IONICE_CLASS`. This does nothing without `IONICE_CLASS`, but defaults to `4` (no priority, no penalties). +The environment variable `NICE` sets the process nice value (see `man nice`). -See https://restic.readthedocs.io/en/stable/020_installation.html#docker-container for further details. +The environment variable `IONICE_CLASS` selects the I/O scheduling class (see +`man ionice`). Real-time classes need the `SYS_NICE` capability added to the +container. -https://github.com/restic/restic/pull/5448 \ No newline at end of file +The environment variable `IONICE_PRIORITY` sets the priority within +`IONICE_CLASS` and has no effect unless `IONICE_CLASS` is set; it defaults to `4` +(neutral priority). + +Further detail: +https://restic.readthedocs.io/en/stable/020_installation.html#docker-container + +https://github.com/restic/restic/pull/5448 diff --git a/changelog/unreleased/pull-5465 b/changelog/unreleased/pull-5465 index aee83881d..64783d035 100644 --- a/changelog/unreleased/pull-5465 +++ b/changelog/unreleased/pull-5465 @@ -1,10 +1,11 @@ Bugfix: Correctly restore ACL inheritance state on Windows -Since the introduction of Security Descriptor backups in restic 0.17.0, the inheritance property of Access Control Entries (ACEs) was not restored correctly. This resulted in all restored permissions being marked as explicit (IsInherited: False), even if they were originally inherited from a parent folder. +Since security descriptor backups were added in restic 0.17.0, Access Control Entries +inheritance was not restored correctly on Windows: restored permissions were always marked +as explicit (not inherited) even when they were inherited from a parent folder. -The issue was caused by sending conflicting inheritance flags (PROTECTED_... and UNPROTECTED_...) to the Windows API during the restore process. The API would default to the more restrictive PROTECTED state, effectively disabling inheritance. - -This has been fixed by ensuring that only the correct, non-conflicting inheritance flag is used when applying the security descriptor, preserving the original permission structure from the backup. +Now the inheritance flags are correctly applied when restoring the security +descriptor, so the original permission structure is preserved. +https://github.com/restic/restic/issues/5427 https://github.com/restic/restic/pull/5465 -https://github.com/restic/restic/issues/5427 \ No newline at end of file diff --git a/changelog/unreleased/pull-5523 b/changelog/unreleased/pull-5523 index 51cfd2063..2341bde99 100644 --- a/changelog/unreleased/pull-5523 +++ b/changelog/unreleased/pull-5523 @@ -1,6 +1,6 @@ -Enhancement: Add OpenContainers labels to Dockerfile.release +Enhancement: Add Open Container Initiative labels to `Dockerfile.release` -The restic Docker image now includes labels from the OpenContainers Annotations Spec. -This information can be used by third party services. +The release Docker image now includes OCI-style image annotation labels, which +helps external tooling identify the image. https://github.com/restic/restic/pull/5523 diff --git a/changelog/unreleased/pull-5588 b/changelog/unreleased/pull-5588 index dd3ab25e2..a3d4b21cd 100644 --- a/changelog/unreleased/pull-5588 +++ b/changelog/unreleased/pull-5588 @@ -1,10 +1,9 @@ -Enhancement: Display timezone information in snapshots output +Enhancement: Show timezone context in `snapshots` output -The `snapshots` command now displays which timezone is being used to show -timestamps. Since snapshots can be created in different timezones but are -always displayed in the local timezone, a footer line is now shown indicating -the timezone used for display (e.g., "Timestamps shown in CET timezone"). -This helps prevent confusion when comparing snapshots in a multi-user -environment. +The `snapshots` command now prints which timezone is used for displayed +timestamps. Snapshots may have been created in different timezones but are +shown in the local timezone, so a footer line (for example, timestamps shown in +CET) clarifies the display context when comparing snapshots from several +sources. https://github.com/restic/restic/pull/5588 diff --git a/changelog/unreleased/pull-5610 b/changelog/unreleased/pull-5610 index b6fd90821..5ea95d124 100644 --- a/changelog/unreleased/pull-5610 +++ b/changelog/unreleased/pull-5610 @@ -1,7 +1,6 @@ -Enhancement: reduce memory usage of check/copy/diff/stats commands +Enhancement: Reduce memory use in `check`, `copy`, `diff`, and `stats` -We have optimized the memory usage of the `check`, `copy`, `diff` and -`stats` commands. These now require less memory when processing large -snapshots. +The `check`, `copy`, `diff`, and `stats` commands use less memory when handling +large snapshots. https://github.com/restic/restic/pull/5610 diff --git a/changelog/unreleased/pull-5664 b/changelog/unreleased/pull-5664 index 3e480f0d3..3b650c4bd 100644 --- a/changelog/unreleased/pull-5664 +++ b/changelog/unreleased/pull-5664 @@ -1,6 +1,7 @@ -Bugfix: restic find --pack did not produce output for tree packs +Bugfix: `restic find --pack` now lists blobs for tree packs -`restic find --pack` now produces output for a tree related packfile. +`restic find --pack` treated tree-related pack files like data packs and +produced no matches. It now reports the expected blobs for tree packs as well. https://github.com/restic/restic/issues/5280 https://github.com/restic/restic/pull/5664 diff --git a/changelog/unreleased/pull-5718 b/changelog/unreleased/pull-5718 index f349bb744..2d27ca9dc 100644 --- a/changelog/unreleased/pull-5718 +++ b/changelog/unreleased/pull-5718 @@ -1,9 +1,8 @@ -Enhancement: stricter early mountpoint validation in `mount` +Enhancement: Stricter early validation of the `mount` mountpoint -`restic mount` accepted parameters that would lead to a FUSE mount operation -failing after having done computationally intensive work to prepare the mount. -The `mountpoint` argument supplied must now refer to the name of a directory -that the current user can access and write to, otherwise `restic mount` will -exit with an error before interacting with the repository. +`restic mount` could accept mountpoints that only failed after loading the +repository. The mountpoint must now name a directory the current user can +access and write to; otherwise `restic mount` immediately exits with an error +before opening the repository. https://github.com/restic/restic/pull/5718 diff --git a/changelog/unreleased/pull-5720 b/changelog/unreleased/pull-5720 index ea70bfbe3..5ae0af8ed 100644 --- a/changelog/unreleased/pull-5720 +++ b/changelog/unreleased/pull-5720 @@ -1,9 +1,9 @@ -Enhancement: speed up index loading +Enhancement: Speed up index loading -Loading the index for a large repository is now significantly faster. `restic mount` -now also loads the index once on startup and incrementally loads only -new index files afterwards. In addition, `restic mount` now loads snapshots -before printing that the repository is being served. +Loading the index for a large repository is now significantly faster. The +`mount` command now also loads the index once at startup and then only loads +new index files as they appear. It also loads snapshots before printing that +the repository is being served. https://github.com/restic/restic/pull/5720 https://github.com/restic/restic/pull/5713