diff --git a/changelog/unreleased/issue-1786 b/changelog/unreleased/issue-1786 index 87d4942c8..b48ac0db6 100644 --- a/changelog/unreleased/issue-1786 +++ b/changelog/unreleased/issue-1786 @@ -1,17 +1,18 @@ Enhancement: Support repositories with empty password -Restic refused to create or operate on repositories with an empty password. +Restic previously required a password to create or operate on repositories. Using the new option `--insecure-no-password` it is now possible to disable -this check. Restic will not prompt for a password when using this option. +this requirement. Restic will not prompt for a password when using this option. + For security reasons, the option must always be specified when operating on -repositories with an empty password. +repositories with an empty password, and specifying `--insecure-no-password` +while also passing a password to restic via a CLI option or environment +variable results in an error. -Specifying `--insecure-no-password` while also passing a password to restic -via a CLI option or via environment variable results in an error. - -The `init` and `copy` command also support the option `--from-insecure-no-password` -which applies to the source repository. The `key add` and `key passwd` commands -include the `--new-insecure-no-password` option to add or set an empty password. +The `init` and `copy` commands adds the related `--from-insecure-no-password` +option, which applies to the source repository. The `key add` and `key passwd` +commands add the `--new-insecure-no-password` option to add or set an empty +password. https://github.com/restic/restic/issues/1786 https://github.com/restic/restic/issues/4326 diff --git a/changelog/unreleased/issue-2348 b/changelog/unreleased/issue-2348 index a8a0849fe..c329ae0a2 100644 --- a/changelog/unreleased/issue-2348 +++ b/changelog/unreleased/issue-2348 @@ -1,10 +1,12 @@ Enhancement: Add `--delete` option to `restore` command -The `restore` command now supports a `--delete` option that allows removing files and directories -from the target directory that do not exist in the snapshot. This option also allows files in the -snapshot to replace non-empty directories. +The `restore` command now supports a `--delete` option that allows removing +files and directories from the target directory that do not exist in the +snapshot. This option also allows files in the snapshot to replace non-empty +directories having the same name. -To check that only the expected files are deleted add the `--dry-run --verbose=2` options. +To check that only expected files are deleted, add the `--dry-run --verbose=2` +options. https://github.com/restic/restic/issues/2348 https://github.com/restic/restic/pull/4881 diff --git a/changelog/unreleased/issue-3600 b/changelog/unreleased/issue-3600 index 0da66d382..b1e9af126 100644 --- a/changelog/unreleased/issue-3600 +++ b/changelog/unreleased/issue-3600 @@ -1,10 +1,10 @@ -Bugfix: `backup` works if xattrs above the backup target cannot be read +Bugfix: Handle unreadable xattrs in folders above `backup` target -When backup targets are specified using absolute paths, then `backup` also -includes information about the parent folders of the backup targets in the -snapshot. If the extended attributes for some of these folders could not be -read due to missing permissions, this caused the backup to fail. This has been -fixed. +When backup targets are specified using absolute paths, `backup` also includes +information about the parent folders of the backup targets in the snapshot. + +If the extended attributes for some of these folders could not be read due to +missing permissions, this caused the backup to fail. This has now been fixed. https://github.com/restic/restic/issues/3600 https://github.com/restic/restic/pull/4668 diff --git a/changelog/unreleased/issue-3806 b/changelog/unreleased/issue-3806 index d3ae9b507..6b0663c9f 100644 --- a/changelog/unreleased/issue-3806 +++ b/changelog/unreleased/issue-3806 @@ -1,10 +1,11 @@ -Enhancement: Make `prune` command resumable +Enhancement: Optimize and make `prune` command resumable -When `prune` was interrupted, it a latter `prune` run previously started repacking -the pack files from the start as `prune` did not update the index while repacking. +Previously, if the `prune` command was interrupted, a later `prune` run would +start repacking pack files from the start, as `prune` did not update the index +while repacking. The `prune` command now supports resuming interrupted prune runs. The update -of the repository index also has been optimized to use less memory and only +of the repository index has also been optimized to use less memory and only rewrite parts of the index that have changed. https://github.com/restic/restic/issues/3806 diff --git a/changelog/unreleased/issue-4048 b/changelog/unreleased/issue-4048 index 0754171f3..3b9c61d20 100644 --- a/changelog/unreleased/issue-4048 +++ b/changelog/unreleased/issue-4048 @@ -1,6 +1,6 @@ -Enhancement: Add support for fuse-t for `mount` on macOS +Enhancement: Add support for FUSE-T with `mount` on macOS -Restic now supports creating fuse mounts using fuse-t on macOS. +The restic `mount` command now supports creating FUSE mounts using FUSE-T on macOS. https://github.com/restic/restic/issues/4048 https://github.com/restic/restic/pull/4825 diff --git a/changelog/unreleased/issue-4209 b/changelog/unreleased/issue-4209 index 2e49191c1..04eb8ef18 100644 --- a/changelog/unreleased/issue-4209 +++ b/changelog/unreleased/issue-4209 @@ -1,7 +1,7 @@ -Bugfix: Fix slow sftp upload performance +Bugfix: Fix slow SFTP upload performance Since restic 0.12.1, the upload speed of the sftp backend to a remote server -has regressed significantly. This has been fixed. +has regressed significantly. This has now been fixed. https://github.com/restic/restic/issues/4209 https://github.com/restic/restic/pull/4782 diff --git a/changelog/unreleased/issue-4251 b/changelog/unreleased/issue-4251 index d1d3f4508..5541f2d7e 100644 --- a/changelog/unreleased/issue-4251 +++ b/changelog/unreleased/issue-4251 @@ -1,4 +1,4 @@ -Enhancement: Support reading backup from a commands's standard output +Enhancement: Support reading backup from a command's standard output The `backup` command now supports the `--stdin-from-command` option. When using this option, the arguments to `backup` are interpreted as a command instead of diff --git a/changelog/unreleased/issue-4287 b/changelog/unreleased/issue-4287 index df4fc5590..cd25a8dee 100644 --- a/changelog/unreleased/issue-4287 +++ b/changelog/unreleased/issue-4287 @@ -1,9 +1,7 @@ -Enhancement: support connection to rest-server using unix socket +Enhancement: Support connection to rest-server using unix socket -Restic now supports connecting to rest-server using a unix socket for -rest-server version 0.13.0 or later. - -This allows running restic as follows: +Restic now supports using a unix socket to connect to a rest-server +version 0.13.0 or later. This allows running restic as follows: ``` rest-server --listen unix:/tmp/rest.socket --data /path/to/data & diff --git a/changelog/unreleased/issue-4437 b/changelog/unreleased/issue-4437 index ee0981c50..bc76c0983 100644 --- a/changelog/unreleased/issue-4437 +++ b/changelog/unreleased/issue-4437 @@ -1,9 +1,10 @@ -Enhancement: `check` command creates cache directory if it does not exist +Enhancement: Make `check` command create non-existent cache directory -If a custom cache directory was specified for the `check` command but the directory did not exist, -then `check` continued with cache disabled. +Previously, if a custom cache directory was specified for the `check` command, +but the directory did not exist, `check` continued with the cache disabled. -The `check` command now attempts to create the cache directory before initializing the cache. +The `check` command now attempts to create the cache directory before +initializing the cache. https://github.com/restic/restic/issues/4437 https://github.com/restic/restic/pull/4805 diff --git a/changelog/unreleased/issue-4472 b/changelog/unreleased/issue-4472 index 3049fdf30..beb3612b8 100644 --- a/changelog/unreleased/issue-4472 +++ b/changelog/unreleased/issue-4472 @@ -1,11 +1,11 @@ -Enhancement: Allow AWS Assume Role to be used for S3 backend +Enhancement: Support AWS Assume Role for S3 backend Previously only credentials discovered via the Minio discovery methods were used to authenticate. However, there are many circumstances where the discovered credentials have lower permissions and need to assume a specific role. This is now possible -using the following new environment variables. +using the following new environment variables: - RESTIC_AWS_ASSUME_ROLE_ARN - RESTIC_AWS_ASSUME_ROLE_SESSION_NAME diff --git a/changelog/unreleased/issue-4540 b/changelog/unreleased/issue-4540 index 9a706141e..25358c332 100644 --- a/changelog/unreleased/issue-4540 +++ b/changelog/unreleased/issue-4540 @@ -1,6 +1,7 @@ Change: Require at least ARMv6 for ARM binaries -The official release binaries of restic now require at least ARMv6 support for ARM platforms. +The official release binaries of restic now require +at least ARMv6 support for ARM platforms. https://github.com/restic/restic/issues/4540 https://github.com/restic/restic/pull/4542 diff --git a/changelog/unreleased/issue-4547 b/changelog/unreleased/issue-4547 index edb1cf693..bb69a59e6 100644 --- a/changelog/unreleased/issue-4547 +++ b/changelog/unreleased/issue-4547 @@ -1,7 +1,7 @@ -Enhancement: Add support for `--json` option to `version` command +Enhancement: Add `--json` option to `version` command -Restic now supports outputting restic version and used go version, OS and -architecture via JSON when using the version command. +Restic now supports outputting restic version along with the Go version, OS +and architecture used to build restic in JSON format using `version --json`. https://github.com/restic/restic/issues/4547 https://github.com/restic/restic/pull/4553 diff --git a/changelog/unreleased/issue-4549 b/changelog/unreleased/issue-4549 index 8f35b0233..245ed484a 100644 --- a/changelog/unreleased/issue-4549 +++ b/changelog/unreleased/issue-4549 @@ -1,11 +1,10 @@ Enhancement: Add `--ncdu` option to `ls` command -NCDU (NCurses Disk Usage) is a tool to analyse disk usage of directories. -It has an option to save a directory tree and analyse it later. -The `ls` command now supports the `--ncdu` option which outputs information -about a snapshot in the NCDU format. +NCDU (NCurses Disk Usage) is a tool to analyse disk usage of directories. It has +an option to save a directory tree and analyse it later. -You can use it as follows: `restic ls latest --ncdu | ncdu -f -` +The `ls` command now supports outputting snapshot information in the NCDU format +using the `--ncdu` option. Example usage: `restic ls latest --ncdu | ncdu -f -` https://github.com/restic/restic/issues/4549 https://github.com/restic/restic/pull/4550 diff --git a/changelog/unreleased/issue-4568 b/changelog/unreleased/issue-4568 index fedf373ea..00394fc44 100644 --- a/changelog/unreleased/issue-4568 +++ b/changelog/unreleased/issue-4568 @@ -1,17 +1,16 @@ -Bugfix: Prevent `forget --keep-tags invalid` from deleting all snapshots +Bugfix: Prevent `forget --keep-tags ` from deleting all snapshots -Running `forget --keep-tags invalid`, where the tag `invalid` does not -exist in the repository, would remove all snapshots. This is especially +Running `forget --keep-tags `, where `` is a tag that does +not exist in the repository, would remove all snapshots. This is especially problematic if the tag name contains a typo. The `forget` command now fails with an error if all snapshots in a snapshot group would be deleted. This prevents the above example from deleting all snapshots. -It is possible to temporarily disable the new check by setting the environment variable -`RESTIC_FEATURES=safe-forget-keep-tags=false`. Note that this feature flag -will be removed in the next minor restic version. +It is possible to temporarily disable the new check by setting the environment +variable `RESTIC_FEATURES=safe-forget-keep-tags=false`. Note that this feature +flag will be removed in the next minor restic version. -https://github.com/restic/restic/issues/4568 +https://github.com/restic/restic/pull/4568 https://github.com/restic/restic/pull/4764 -https://forum.restic.net/t/delete-all-snapshots-in-one-command-is-this-feature-intentional/6923/3 diff --git a/changelog/unreleased/issue-4583 b/changelog/unreleased/issue-4583 index 97b0e6ba7..bc1d030cc 100644 --- a/changelog/unreleased/issue-4583 +++ b/changelog/unreleased/issue-4583 @@ -1,12 +1,13 @@ -Enhancement: Ignore s3.storage-class for metadata if archive tier is specified +Enhancement: Ignore `s3.storage-class` archive tiers for metadata -There is no official cold storage support in restic, use this option at your -own risk. +Restic used to store all files on S3 using the specified `s3.storage-class`. -Restic always stored all files on s3 using the specified `s3.storage-class`. -Now, restic will store metadata using a non-archive storage tier to avoid +Now, restic will only use non-archive storage tiers for metadata, to avoid problems when accessing a repository. To restore any data, it is still necessary to manually warm up the required data beforehand. +NOTE: There is no official cold storage support in restic, use this option at +your own risk. + https://github.com/restic/restic/issues/4583 https://github.com/restic/restic/pull/4584 diff --git a/changelog/unreleased/issue-4601 b/changelog/unreleased/issue-4601 index f99dbe187..8efeba47f 100644 --- a/changelog/unreleased/issue-4601 +++ b/changelog/unreleased/issue-4601 @@ -2,8 +2,8 @@ Enhancement: Add support for feature flags Restic now supports feature flags that can be used to enable and disable experimental features. The flags can be set using the environment variable -`RESTIC_FEATURES`. To get a list of currently supported feature flags, -run the `features` command. +`RESTIC_FEATURES`. To get a list of currently supported feature flags, use +the `features` command. https://github.com/restic/restic/issues/4601 https://github.com/restic/restic/pull/4666 diff --git a/changelog/unreleased/issue-4602 b/changelog/unreleased/issue-4602 index 7532bcb1e..3fe19db79 100644 --- a/changelog/unreleased/issue-4602 +++ b/changelog/unreleased/issue-4602 @@ -1,22 +1,21 @@ -Change: Deprecate legacy index format and s3legacy layout +Change: Deprecate legacy index format and `s3legacy` repository layout Support for the legacy index format used by restic before version 0.2.0 has been deprecated and will be removed in the next minor restic version. You can use `restic repair index` to update the index to the current format. It is possible to temporarily reenable support for the legacy index format by -setting the environment variable -`RESTIC_FEATURES=deprecate-legacy-index=false`. Note that this feature flag -will be removed in the next minor restic version. +setting the environment variable `RESTIC_FEATURES=deprecate-legacy-index=false`. +Note that this feature flag will be removed in the next minor restic version. -Support for the s3legacy layout used for the S3 backend before restic 0.7.0 -has been deprecated and will be removed in the next minor restic version. You -can migrate your S3 repository using `RESTIC_FEATURES=deprecate-s3-legacy-layout=false restic migrate s3_layout`. +Support for the `s3legacy` repository layout used for the S3 backend before +restic 0.7.0 has been deprecated and will be removed in the next minor restic +version. You can migrate your S3 repository to the current layout using +`RESTIC_FEATURES=deprecate-s3-legacy-layout=false restic migrate s3_layout`. -It is possible to temporarily reenable support for the legacy s3layout by -setting the environment variable -`RESTIC_FEATURES=deprecate-s3-legacy-layout=false`. Note that this feature flag -will be removed in the next minor restic version. +It is possible to temporarily reenable support for the `s3legacy` layout by +setting the environment variable `RESTIC_FEATURES=deprecate-s3-legacy-layout=false`. +Note that this feature flag will be removed in the next minor restic version. https://github.com/restic/restic/issues/4602 https://github.com/restic/restic/pull/4724 diff --git a/changelog/unreleased/issue-4627 b/changelog/unreleased/issue-4627 index e9c66c175..87a185604 100644 --- a/changelog/unreleased/issue-4627 +++ b/changelog/unreleased/issue-4627 @@ -2,23 +2,24 @@ Change: Redesign backend error handling to improve reliability Restic now downloads pack files in large chunks instead of using a streaming download. This prevents failures due to interrupted streams. The `restore` -command now also retries downloading individual blobs that cannot be retrieved. +command now also retries downloading individual blobs that could not be +retrieved. HTTP requests that are stuck for more than two minutes while uploading or downloading are now forcibly interrupted. This ensures that stuck requests are retried after a short timeout. -Attempts to access a missing file or a truncated file will no longer be retried. -This avoids unnecessary retries in those cases. All other backend requests are -retried for up to 15 minutes. This ensures that a temporarily interrupted network +Attempts to access a missing or truncated file will no longer be retried. This +avoids unnecessary retries in those cases. All other backend requests are +retried for up to 15 minutes. This ensures that temporarily interrupted network connections can be tolerated. -If a download yields a corrupt file or blob, then the download will be retried once. +If a download yields a corrupt file or blob, then the download will be retried +once. Most parts of the new backend error handling can temporarily be disabled by -setting the environment variable -`RESTIC_FEATURES=backend-error-redesign=false`. Note that this feature flag will -be removed in the next minor restic version. +setting the environment variable `RESTIC_FEATURES=backend-error-redesign=false`. +Note that this feature flag will be removed in the next minor restic version. https://github.com/restic/restic/issues/4627 https://github.com/restic/restic/issues/4193 diff --git a/changelog/unreleased/issue-4656 b/changelog/unreleased/issue-4656 index 8d16f0b48..ef8c1e12a 100644 --- a/changelog/unreleased/issue-4656 +++ b/changelog/unreleased/issue-4656 @@ -1,6 +1,6 @@ -Bugfix: Properly report the ID of newly added keys +Bugfix: Properly report ID of newly added keys -`restic key add` now reports the ID of a newly added key. This simplifies +`restic key add` now reports the ID of the newly added key. This simplifies selecting a specific key using the `--key-hint key` option. https://github.com/restic/restic/issues/4656 diff --git a/changelog/unreleased/issue-4676 b/changelog/unreleased/issue-4676 index e95118e72..ecea79361 100644 --- a/changelog/unreleased/issue-4676 +++ b/changelog/unreleased/issue-4676 @@ -1,8 +1,8 @@ -Enhancement: Move key add, list, remove and passwd as separate sub-commands +Enhancement: Make `key` command's actions separate sub-commands -Restic now provides usage documentation for the `key` command. Each sub-command; -`add`, `list`, `remove` and `passwd` now have their own sub-command documentation -which can be invoked using `restic key --help`. +Each of the `add`, `list`, `remove` and `passwd` actions provided by the `key` +command is now a separate sub-command and have its own documentation which can +be invoked using `restic key --help`. https://github.com/restic/restic/issues/4676 https://github.com/restic/restic/pull/4685 diff --git a/changelog/unreleased/issue-4678 b/changelog/unreleased/issue-4678 index 9f9a213e1..401449bd2 100644 --- a/changelog/unreleased/issue-4678 +++ b/changelog/unreleased/issue-4678 @@ -1,7 +1,7 @@ -Enhancement: Add --target flag to the dump command +Enhancement: Add `--target` option to the `dump` command -Restic `dump` always printed to the standard output. It now permits to select a -`--target` file to write the output to. +Restic `dump` always printed to the standard output. It now supports specifying +a `--target` file to write its output to. https://github.com/restic/restic/issues/4678 https://github.com/restic/restic/pull/4682 diff --git a/changelog/unreleased/issue-4707 b/changelog/unreleased/issue-4707 index 3c5ffa2ad..3c8f1a2f3 100644 --- a/changelog/unreleased/issue-4707 +++ b/changelog/unreleased/issue-4707 @@ -1,12 +1,12 @@ -Change: Disallow S3 anonymous authentication by default +Change: Disable S3 anonymous authentication by default -When using the S3 backend with anonymous authentication, it continuously tried -to retrieve new authentication credentials, which caused bad performance. +When using the S3 backend with anonymous authentication, it continuously +tried to retrieve new authentication credentials, causing bad performance. -Now, to use anonymous authentication, it is necessary to pass the option `-o -s3.unsafe-anonymous-auth=true` to restic. +Now, to use anonymous authentication, it is necessary to pass the extended +option `-o s3.unsafe-anonymous-auth=true` to restic. -It is temporarily possible to revert to the old behavior by setting the +It is possible to temporarily revert to the old behavior by setting the environment variable `RESTIC_FEATURES=explicit-s3-anonymous-auth=false`. Note that this feature flag will be removed in the next minor restic version. diff --git a/changelog/unreleased/issue-4733 b/changelog/unreleased/issue-4733 index 1fc271587..fb5a072d6 100644 --- a/changelog/unreleased/issue-4733 +++ b/changelog/unreleased/issue-4733 @@ -1,9 +1,11 @@ Enhancement: Allow specifying `--host` via environment variable Restic commands that operate on snapshots, such as `restic backup` and -`restic snapshots`, support the `--host` flag to specify the hostname for -grouoping snapshots. They now permit selecting the hostname via the -environment variable `RESTIC_HOST`. `--host` still takes precedence over the +`restic snapshots`, support the `--host` option to specify the hostname +for grouping snapshots. + +Such commands now also support specifying the hostname via the environment +variable `RESTIC_HOST`. Note that `--host` still takes precedence over the environment variable. https://github.com/restic/restic/issues/4733 diff --git a/changelog/unreleased/issue-4744 b/changelog/unreleased/issue-4744 index b0ede1c5c..b5c759bed 100644 --- a/changelog/unreleased/issue-4744 +++ b/changelog/unreleased/issue-4744 @@ -1,7 +1,7 @@ Change: Include full key ID in JSON output of `key list` -We have changed the JSON output of the `key list` command to include the full -key ID instead of just a shortened version, as the latter can be ambiguous +The JSON output of the `key list` command has changed to include the full key +ID instead of just a shortened version of the ID, as the latter can be ambiguous in some rare cases. To derive the short ID, please truncate the full ID down to eight characters. diff --git a/changelog/unreleased/issue-4760 b/changelog/unreleased/issue-4760 index bb2d9c5b4..e56f41a44 100644 --- a/changelog/unreleased/issue-4760 +++ b/changelog/unreleased/issue-4760 @@ -2,7 +2,7 @@ Bugfix: Fix possible error on concurrent cache cleanup If multiple restic processes concurrently cleaned up no longer existing files from the cache, this could cause some of the processes to fail with an `no such -file or directory` error. This has been fixed. +file or directory` error. This has now been fixed. https://github.com/restic/restic/issues/4760 https://github.com/restic/restic/pull/4761 diff --git a/changelog/unreleased/issue-4768 b/changelog/unreleased/issue-4768 index dd52089e1..9fb1a29de 100644 --- a/changelog/unreleased/issue-4768 +++ b/changelog/unreleased/issue-4768 @@ -1,7 +1,7 @@ -Enhancement: Allow custom User-Agent to be specified for outgoing requests +Enhancement: Allow specifying custom User-Agent for outgoing requests -Restic now permits setting a custom `User-Agent` for outgoing HTTP requests -using the global flag `--http-user-agent` or the `RESTIC_HTTP_USER_AGENT` +Restic now supports setting a custom `User-Agent` for outgoing HTTP requests +using the global option `--http-user-agent` or the `RESTIC_HTTP_USER_AGENT` environment variable. https://github.com/restic/restic/issues/4768 diff --git a/changelog/unreleased/issue-4781 b/changelog/unreleased/issue-4781 index b4af20885..2c9584d77 100644 --- a/changelog/unreleased/issue-4781 +++ b/changelog/unreleased/issue-4781 @@ -1,8 +1,8 @@ -Enhancement: Add restore flags to read include and exclude patterns from files +Enhancement: Add `restore` options to read include/exclude patterns from files Restic now supports reading include and exclude patterns from files using the `--include-file`, `--exclude-file`, `--iinclude-file` and `--iexclude-file` -flags. +options of the `restore` command. https://github.com/restic/restic/issues/4781 https://github.com/restic/restic/pull/4811 \ No newline at end of file diff --git a/changelog/unreleased/issue-4817 b/changelog/unreleased/issue-4817 index c1d5f658d..83c682775 100644 --- a/changelog/unreleased/issue-4817 +++ b/changelog/unreleased/issue-4817 @@ -1,18 +1,20 @@ Enhancement: Make overwrite behavior of `restore` customizable The `restore` command now supports an `--overwrite` option to configure whether -already existing files are overwritten. This behavior can now be configured via -the `--overwrite` option. The following values are supported: +already existing files are overwritten. The overwrite behavior can be configured +using the following option values: -* `--overwrite always` (default): always overwrites already existing files. `restore` - will verify the existing file content and only restore mismatching parts to minimize - downloads. Updates the metadata of all files. -* `--overwrite if-changed`: like the previous case, but speeds up the file content check - by assuming that files with matching size and modification time (mtime) are already up to date. - In case of a mismatch, the full file content is verified. Updates the metadata of all files. -* `--overwrite if-newer`: only overwrite existing files if the file in the snapshot has a - newer modification time (mtime). -* `--overwrite never`: never overwrite existing files. +- `--overwrite always` (default): Always overwrites already existing files. + The `restore` command will verify the existing file content and only restore + mismatching parts to minimize downloads. Updates the metadata of all files. +- `--overwrite if-changed`: Like `always`, but speeds up the file content check + by assuming that files with matching size and modification time (mtime) are + already up to date. In case of a mismatch, the full file content is verified + like with `always`. Updates the metadata of all files. +- `--overwrite if-newer`: Like `always`, but only overwrites existing files + when the file in the snapshot has a newer modification time (mtime) than the + existing file. +- `--overwrite never`: Never overwrites existing files. https://github.com/restic/restic/issues/4817 https://github.com/restic/restic/issues/200 diff --git a/changelog/unreleased/issue-4850 b/changelog/unreleased/issue-4850 index ad065cc21..bc752cb05 100644 --- a/changelog/unreleased/issue-4850 +++ b/changelog/unreleased/issue-4850 @@ -1,8 +1,8 @@ -Bugfix: correctly handle UTF-16 password files in `key add/passwd` +Bugfix: Handle UTF-16 password files in `key` command correctly -`key add` and `key passwd` did not properly decode UTF-16 encoded password read -from a password file. This has been fix to match the decoding when opening a -repository. +Previously, `key add` and `key passwd` did not properly decode UTF-16 +encoded passwords read from a password file. This has now been fix to +correctly match the encoding when opening a repository. https://github.com/restic/restic/issues/4850 https://github.com/restic/restic/pull/4851 diff --git a/changelog/unreleased/issue-4902 b/changelog/unreleased/issue-4902 index 331de00f2..507d8abbe 100644 --- a/changelog/unreleased/issue-4902 +++ b/changelog/unreleased/issue-4902 @@ -1,6 +1,8 @@ -Enhancement: Update snapshot summary on rewrite +Bugfix: Update snapshot summary on `rewrite` -Restic now recalculates the total number of files and bytes processed when files are excluded during rewrite. +Restic previously did not recalculate the total number of files and bytes +processed when files were excluded from a snapshot by the `rewrite` command. +This has now been fixed. https://github.com/restic/restic/issues/4902 https://github.com/restic/restic/pull/4905 diff --git a/changelog/unreleased/issue-662 b/changelog/unreleased/issue-662 index e5a7c6fe8..4e99a8f73 100644 --- a/changelog/unreleased/issue-662 +++ b/changelog/unreleased/issue-662 @@ -1,11 +1,11 @@ -Enhancement: `backup` can omit snapshot creation if there was no change +Enhancement: Omit snapshot creation if nothing changed -The `backup` command always created a snapshot even if nothing changed -compared to the parent snapshot. +The `backup` command always created a snapshot even if nothing in the +backup set changed compared to the parent snapshot. Restic now supports the `--skip-if-unchanged` option for the `backup` -command to omit creating a snapshot if the new snapshot's content would -be identical to that of the parent snapshot. +command, which omits creating a snapshot if the new snapshot's content +would be identical to that of the parent snapshot. https://github.com/restic/restic/issues/662 https://github.com/restic/restic/pull/4816 diff --git a/changelog/unreleased/issue-693 b/changelog/unreleased/issue-693 index 34b5b9455..4a8c766a4 100644 --- a/changelog/unreleased/issue-693 +++ b/changelog/unreleased/issue-693 @@ -1,8 +1,8 @@ -Enhancement: Support printing snapshot size in `snapshots` command +Enhancement: Include snapshot size in `snapshots` output -The `snapshots` command now supports printing the snapshot size for snapshots -created using this or a future restic version. For this, the `backup` command -now stores the backup summary statistics in the snapshot. +The `snapshots` command now prints the size for snapshots created using this +or a future restic version. To achieve this, the `backup` command now stores +the backup summary statistics in the snapshot. The text output of the `snapshots` command only shows the snapshot size. The other statistics are only included in the JSON output. To inspect these diff --git a/changelog/unreleased/issue-828 b/changelog/unreleased/issue-828 index 2e8bcd0b0..0c752dea8 100644 --- a/changelog/unreleased/issue-828 +++ b/changelog/unreleased/issue-828 @@ -1,4 +1,4 @@ -Enhancement: Improve `repair packs` command +Enhancement: Improve features of the `repair packs` command The `repair packs` command has been improved to also be able to process truncated pack files. The `check` and `check --read-data` command will provide diff --git a/changelog/unreleased/pull-3067 b/changelog/unreleased/pull-3067 index fbdcfd7e5..9ecec4838 100644 --- a/changelog/unreleased/pull-3067 +++ b/changelog/unreleased/pull-3067 @@ -1,22 +1,25 @@ -Enhancement: Add options to configure Windows Shadow Copy Service +Enhancement: Add extended options to configure Windows Shadow Copy Service -Restic always used 120 seconds timeout and unconditionally created VSS snapshots -for all volume mount points on disk. Now this behavior can be fine-tuned by -new options, like exclude specific volumes and mount points or completely -disable auto snapshotting of volume mount points. +Previous, restic always used a 120 seconds timeout and unconditionally created +VSS snapshots for all volume mount points on disk. This behavior can now be +fine-tuned by the following new extended options (available only on Windows): -For example: +- `-o vss.timeout`: Time that VSS can spend creating snapshot before timing out (default: 120s) +- `-o vss.exclude-all-mount-points`: Exclude mountpoints from snapshotting on all volumes (default: false) +- `-o vss.exclude-volumes`: Semicolon separated list of volumes to exclude from snapshotting +- `-o vss.provider`: VSS provider identifier which will be used for snapshotting + +For example, change VSS timeout to five minutes and disable snapshotting of +mount points on all volumes: restic backup --use-fs-snapshot -o vss.timeout=5m -o vss.exclude-all-mount-points=true -changes timeout to five minutes and disable snapshotting of mount points on all volumes, and +Exclude drive `d:`, mount point `c:\mnt` and a specific volume from snapshotting: restic backup --use-fs-snapshot -o vss.exclude-volumes="d:\;c:\mnt\;\\?\Volume{e2e0315d-9066-4f97-8343-eb5659b35762}" -excludes drive `d:`, mount point `c:\mnt` and specific volume from VSS snapshotting. +Uses 'Microsoft Software Shadow Copy provider 1.0' instead of the default provider: restic backup --use-fs-snapshot -o vss.provider={b5946137-7b9f-4925-af80-51abd60b20d5} -uses 'Microsoft Software Shadow Copy provider 1.0' instead of the default provider. - https://github.com/restic/restic/pull/3067 diff --git a/changelog/unreleased/pull-4006 b/changelog/unreleased/pull-4006 index 01f4ddb6e..3bfacb8a0 100644 --- a/changelog/unreleased/pull-4006 +++ b/changelog/unreleased/pull-4006 @@ -5,12 +5,11 @@ The feature flag will be removed after repository format version 3 becomes available or be replaced with a different solution. When creating backups from a filesystem snapshot, for example created using -btrfs subvolumes, the deviceID of the filesystem changes compared to previous +BTRFS subvolumes, the deviceID of the filesystem changes compared to previous snapshots. This prevented restic from deduplicating the directory metadata of a snapshot. -When this alpha feature is enabled, then the deviceID is only stored for -hardlinks. This significantly reduces the metadata duplication for most -backups. +When this alpha feature is enabled, the deviceID is only stored for hardlinks, +which significantly reduces the metadata duplication for most backups. https://github.com/restic/restic/pull/4006 diff --git a/changelog/unreleased/pull-4354 b/changelog/unreleased/pull-4354 index dddbbc765..d3cf33249 100644 --- a/changelog/unreleased/pull-4354 +++ b/changelog/unreleased/pull-4354 @@ -1,7 +1,7 @@ -Enhancement: Significantly reduce prune memory usage +Enhancement: Significantly reduce `prune` memory usage -Prune has been optimized to use up to 60% less memory. The memory usage should -now be roughly similar to creating a backup. +The `prune` command has been optimized to use up to 60% less memory. +The memory usage should now be roughly similar to creating a backup. https://github.com/restic/restic/pull/4354 https://github.com/restic/restic/pull/4812 diff --git a/changelog/unreleased/pull-4503 b/changelog/unreleased/pull-4503 index b52552d69..549aa9f53 100644 --- a/changelog/unreleased/pull-4503 +++ b/changelog/unreleased/pull-4503 @@ -1,8 +1,8 @@ Bugfix: Correct hardlink handling in `stats` command -If files on different devices had the same inode id, then the `stats` command -did not correctly calculate the snapshot size. This has been fixed. +If files on different devices had the same inode ID, the `stats` command +did not correctly calculate the snapshot size. This has now been fixed. +https://forum.restic.net/t/possible-bug-in-stats/6461/8 https://github.com/restic/restic/pull/4503 https://github.com/restic/restic/pull/4006 -https://forum.restic.net/t/possible-bug-in-stats/6461/8 diff --git a/changelog/unreleased/pull-4526 b/changelog/unreleased/pull-4526 index 3a538f57a..4d0fee691 100644 --- a/changelog/unreleased/pull-4526 +++ b/changelog/unreleased/pull-4526 @@ -1,11 +1,12 @@ Enhancement: Add bitrot detection to `diff` command -The output of the `diff` command now includes the modifier `?` for files -to indicate bitrot in backed up files. It will appear whenever there is a -difference in content while the metadata is exactly the same. Since files with -unchanged metadata are normally not read again when creating a backup, the -detection is only effective if the right-hand side of the diff has been created -with "backup --force". +The output of the `diff` command now includes the modifier `?` for files to +indicate bitrot in backed up files. The `?` will appear whenever there is a +difference in content while the metadata is exactly the same. + +Since files with unchanged metadata are normally not read again when creating +a backup, the detection is only effective when the right-hand side of the diff +has been created with `backup --force`. https://github.com/restic/restic/issues/805 https://github.com/restic/restic/pull/4526 diff --git a/changelog/unreleased/pull-4573 b/changelog/unreleased/pull-4573 index bd5c2c423..36fc727be 100644 --- a/changelog/unreleased/pull-4573 +++ b/changelog/unreleased/pull-4573 @@ -1,5 +1,6 @@ -Enhancement: Add `--new-host` and `--new-time` options to `rewrite` command +Enhancement: Support rewriting host and time metadata in snapshots -`restic rewrite` now allows rewriting the host and / or time metadata of a snapshot. +The `rewrite` command now supports rewriting the host and/or time metadata of +a snapshot using the new `--new-host` and `--new-time` options. https://github.com/restic/restic/pull/4573 diff --git a/changelog/unreleased/pull-4590 b/changelog/unreleased/pull-4590 index 353d21616..7904c18af 100644 --- a/changelog/unreleased/pull-4590 +++ b/changelog/unreleased/pull-4590 @@ -1,7 +1,6 @@ -Enhancement: `mount` tests mountpoint existence before opening the repository +Enhancement: Speed up `mount` command's error detection -The restic `mount` command now checks for the existence of the -mountpoint before opening the repository, leading to quicker error -detection. +The `mount` command now checks for the existence of the mountpoint before +opening the repository, leading to quicker error detection. https://github.com/restic/restic/pull/4590 diff --git a/changelog/unreleased/pull-4611 b/changelog/unreleased/pull-4611 index a3c7a24d0..426ed590f 100644 --- a/changelog/unreleased/pull-4611 +++ b/changelog/unreleased/pull-4611 @@ -1,7 +1,9 @@ -Enhancement: Back up windows created time and file attributes like hidden flag +Enhancement: Back up more file metadata on Windows -Restic did not back up windows-specific meta-data like created time and file attributes like hidden flag. -Restic now backs up file created time and file attributes like hidden, readonly and encrypted flag when backing up files and folders on Windows. +Previously, restic did not back up all common Windows-specific metadata. + +Restic now stores file creation time and file attributes like the hidden, +read-only and encrypted flags when backing up files and folders on Windows. https://github.com/restic/restic/pull/4611 diff --git a/changelog/unreleased/pull-4615 b/changelog/unreleased/pull-4615 index 7e2d4a017..a8916df3c 100644 --- a/changelog/unreleased/pull-4615 +++ b/changelog/unreleased/pull-4615 @@ -1,6 +1,6 @@ -Bugfix: `find` ignored directories in some cases +Bugfix: Make `find` not sometimes ignore directories In some cases, the `find` command ignored empty or moved directories. This has -been fixed. +now been fixed. https://github.com/restic/restic/pull/4615 diff --git a/changelog/unreleased/pull-4664 b/changelog/unreleased/pull-4664 index 74196cd9b..655ccd082 100644 --- a/changelog/unreleased/pull-4664 +++ b/changelog/unreleased/pull-4664 @@ -1,8 +1,10 @@ -Enhancement: `ls` uses `message_type` field to distinguish JSON messages +Enhancement: Make `ls` use `message_type` field in JSON output -The `ls` command was the only command that used the `struct_type` field to determine -the message type in the JSON output format. Now, the JSON output of the -`ls` command also includes the `message_type`. The `struct_type` field is -still included, but it deprecated. +The `ls` command was the only restic command that used the `struct_type` field +in its JSON output format to specify the message type. + +The JSON output of the `ls` command now also includes the `message_type` field, +which is consistent with other commands. The `struct_type` field is still +included, but now deprecated. https://github.com/restic/restic/pull/4664 diff --git a/changelog/unreleased/pull-4703 b/changelog/unreleased/pull-4703 index 4df3385a0..178842c6c 100644 --- a/changelog/unreleased/pull-4703 +++ b/changelog/unreleased/pull-4703 @@ -1,9 +1,11 @@ -Bugfix: Shutdown cleanly when SIGTERM is received +Bugfix: Shutdown cleanly when receiving SIGTERM -Prior, if restic received SIGTERM it'd just immediately terminate skipping -cleanup- resulting in potential issues like stale locks being left behind. +Previously, when restic received the SIGTERM signal it would terminate +immediately, skipping cleanup and potentially causing issues like stale locks +being left behind. This primarily effected containerized restic invocations +that use SIGTERM, but could also be triggered via a simple `killall restic`. -This primarily effected containerized restic invocations- they use SIGTERM- -but this could be triggered via a simple `killall restic` in addition. +This has now been fixed, such that restic shuts down cleanly when receiving +the SIGTERM signal. https://github.com/restic/restic/pull/4703 diff --git a/changelog/unreleased/pull-4708 b/changelog/unreleased/pull-4708 index 5c5d426b5..16bf33e57 100644 --- a/changelog/unreleased/pull-4708 +++ b/changelog/unreleased/pull-4708 @@ -1,11 +1,13 @@ Enhancement: Back up and restore SecurityDescriptors on Windows -Restic now backs up and restores SecurityDescriptors when backing up files and folders -on Windows which includes owner, group, discretionary access control list (DACL), -system access control list (SACL). This requires the user to be a member of backup -operators or the application must be run as admin. -If that is not the case, only the current user's owner, group and DACL will be backed up -and during restore only the DACL of the backed file will be restored while the current -user's owner and group will be set during the restore. +Restic now backs up and restores SecurityDescriptors for files and folders on +Windows which includes owner, group, discretionary access control list (DACL) +and system access control list (SACL). + +This requires the user to be a member of backup operators or the application +must be run as admin. If that is not the case, only the current user's owner, +group and DACL will be backed up, and during restore only the DACL of the +backed up file will be restored, with the current user's owner and group +being set on the restored file. https://github.com/restic/restic/pull/4708 diff --git a/changelog/unreleased/pull-4709 b/changelog/unreleased/pull-4709 index 5ffb2a6a6..62be8b54b 100644 --- a/changelog/unreleased/pull-4709 +++ b/changelog/unreleased/pull-4709 @@ -1,10 +1,10 @@ -Bugfix: Correct `--no-lock` handling of `ls` and `tag` command +Bugfix: Correct `--no-lock` handling of `ls` and `tag` commands -The `ls` command never locked the repository. This has been fixed. The old -behavior is still supported using `ls --no-lock`. The latter invocation also -works with older restic versions. +The `ls` command never locked the repository. This has now been fixed, with the +old behavior still being supported using `ls --no-lock`. The latter invocation +also works with older restic versions. -The `tag` command erroneously accepted the `--no-lock` command. The command +The `tag` command erroneously accepted the `--no-lock` command. This command now always requires an exclusive lock. https://github.com/restic/restic/pull/4709 diff --git a/changelog/unreleased/pull-4737 b/changelog/unreleased/pull-4737 index 2637c8f83..bf528237d 100644 --- a/changelog/unreleased/pull-4737 +++ b/changelog/unreleased/pull-4737 @@ -1,5 +1,6 @@ -Enhancement: include snapshot id in reason field of forget JSON output +Enhancement: Include snapshot ID in `reason` field of `forget` JSON output -The JSON output of the `forget` command now includes the `id` and `short_id` of a snapshot in the `reason` field. +The JSON output of the `forget` command now includes `id` and `short_id` of +snapshots in the `reason` field. https://github.com/restic/restic/pull/4737 diff --git a/changelog/unreleased/pull-4764 b/changelog/unreleased/pull-4764 index 61b2edac9..d85eadbc3 100644 --- a/changelog/unreleased/pull-4764 +++ b/changelog/unreleased/pull-4764 @@ -1,8 +1,10 @@ -Enhancement: Remove all snapshots using `forget --unsafe-allow-remove-all` +Enhancement: Support forgetting all snapshots -The forget command now supports the `--unsafe-allow-remove-all` option. It must -always be combined with a snapshot filter (by host, path or tag). -For example the command `forget --tag example --unsafe-allow-remove-all`, -removes all snapshots with tag `example`. +The `forget` command now supports the `--unsafe-allow-remove-all` option, which +removes all snapshots in the repository. + +This option must always be combined with a snapshot filter (by host, path or +tag). For example, the command `forget --tag example --unsafe-allow-remove-all` +removes all snapshots with the tag "example". https://github.com/restic/restic/pull/4764 diff --git a/changelog/unreleased/pull-4796 b/changelog/unreleased/pull-4796 index 319b9ccdc..2729c635e 100644 --- a/changelog/unreleased/pull-4796 +++ b/changelog/unreleased/pull-4796 @@ -1,8 +1,8 @@ Enhancement: Improve `dump` performance for large files -The `dump` command now retrieves the data chunks for a file in parallel. This -improves the download performance by up to the configured number of parallel -backend connections. +The `dump` command now retrieves the data chunks for a file in +parallel. This improves the download performance by up to as many +times as the configured number of parallel backend connections. https://github.com/restic/restic/issues/3406 https://github.com/restic/restic/pull/4796 diff --git a/changelog/unreleased/pull-4807 b/changelog/unreleased/pull-4807 index 12f8391e3..b5e5cd7fd 100644 --- a/changelog/unreleased/pull-4807 +++ b/changelog/unreleased/pull-4807 @@ -1,5 +1,6 @@ -Enhancement: Back up and restore Extended Attributes on Windows NTFS +Enhancement: Support Extended Attributes on Windows NTFS -Restic now backs up and restores Extended Attributes on Windows NTFS when backing up files and folders. +Restic now backs up and restores Extended Attributes for files +and folders on Windows NTFS. -https://github.com/restic/restic/pull/4807 \ No newline at end of file +https://github.com/restic/restic/pull/4807 diff --git a/changelog/unreleased/pull-4839 b/changelog/unreleased/pull-4839 index 8d644407b..672ac2e69 100644 --- a/changelog/unreleased/pull-4839 +++ b/changelog/unreleased/pull-4839 @@ -2,6 +2,6 @@ Enhancement: Add dry-run support to `restore` command The `restore` command now supports the `--dry-run` option to perform a dry run. Pass the `--verbose=2` option to see which files would -remain unchanged, which would be updated or freshly restored. +remain unchanged, and which would be updated or freshly restored. https://github.com/restic/restic/pull/4839 diff --git a/changelog/unreleased/pull-4884 b/changelog/unreleased/pull-4884 index ff2bff967..3a7e0d342 100644 --- a/changelog/unreleased/pull-4884 +++ b/changelog/unreleased/pull-4884 @@ -1,10 +1,10 @@ -Change: return exit code 10 or 11 if repository does not exist or is locked +Change: Return exit code 10 and 11 for non-existing and locked repository -If a repository does not exist or cannot be locked, then restic always returned -exit code 1. This made it difficult to distinguish these cases from other -errors. +If a repository does not exist or cannot be locked, restic previously always +returned exit code 1. This made it difficult to distinguish these cases from +other errors. -Now, restic returns exit code 10 if the repository does not exist and exit code +Restic now returns exit code 10 if the repository does not exist, and exit code 11 if the repository could be not locked due to a conflicting lock. https://github.com/restic/restic/issues/956