2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-24 21:57:41 +00:00

Merge pull request #3678 from restic/changelogs

Review, reword and polish unreleased changelog entries
This commit is contained in:
Alexander Neumann 2022-03-26 19:44:30 +01:00 committed by GitHub
commit d7e46c187a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 145 additions and 140 deletions

View File

@ -1,8 +1,8 @@
Bugfix: Never lock repository for `list locks` Bugfix: Never lock repository for `list locks`
The `list locks` command previously locked to the repository by default. This The `list locks` command previously locked to the repository by default. This
has the problem that it won't work for an exclusively locked repository and had the problem that it wouldn't work for an exclusively locked repository and
that the command will also display its own lock file which can be confusing. that the command would also display its own lock file which can be confusing.
Now, the `list locks` command never locks the repository. Now, the `list locks` command never locks the repository.

View File

@ -1,15 +1,14 @@
Enhancement: Add --dry-run/-n option to backup command Enhancement: Add `--dry-run`/`-n` option to `backup` command
Testing exclude filters and other configuration options required running a Testing exclude filters and other configuration options was error prone as
normal backup. Wrong filters could then cause files to be uploaded wrong filters could cause files to be uploaded unintentionally. It was also
unexpectedly. It was also not possible to approximately determine beforehand not possible to estimate beforehand how much data would be uploaded.
how much data has to be uploaded.
We added a new --dry-run/-n option to the backup command, which performs The `backup` command now has a `--dry-run`/`-n` option, which performs all the
all the normal steps of a backup without actually writing any changes to normal steps of a backup without actually writing anything to the repository.
the repository. Passing -vv will log information about files that would
be added, allowing verification of source and exclusion backup options Passing -vv will log information about files that would be added, allowing for
without committing changes to the repository. verification of source and exclusion options before running the real backup.
https://github.com/restic/restic/issues/1542 https://github.com/restic/restic/issues/1542
https://github.com/restic/restic/pull/2308 https://github.com/restic/restic/pull/2308

View File

@ -1,15 +1,13 @@
Enhancement: Add upload checksum for azure, gs, s3 and swift backends Enhancement: Add upload checksum for Azure, GS, S3 and Swift backends
Up to now only the B2 backend and partially the Swift backend verified the Previously only the B2 and partially the Swift backends verified the integrity
integrity of uploaded (encrypted) files. The verification works by informing of uploaded (encrypted) files. The verification works by informing the backend
the backend about the expected hash of the uploaded file. This allows the about the expected hash of the uploaded file. The backend then verifies the
backend to verify the upload and thereby rules out any data corruption during upload and thereby rules out any data corruption during upload.
upload.
We have added upload checksums for the azure, gs, s3 and swift backends. We have now added upload checksums for the Azure, GS, S3 and Swift backends,
which besides integrity checking for uploads also means that restic can now be
Restic can now be used to store backups in S3 buckets which have Object Lock used to store backups in S3 buckets which have Object Lock enabled.
enabled.
https://github.com/restic/restic/issues/2202 https://github.com/restic/restic/issues/2202
https://github.com/restic/restic/issues/2700 https://github.com/restic/restic/issues/2700

View File

@ -1,15 +1,13 @@
Enhancement: Add negative patterns for include/exclude Enhancement: Support negative include/exclude patterns
If a pattern starts with an exclamation mark and it matches a file that If a pattern starts with an exclamation mark and it matches a file that was
was previously matched by a regular pattern, the match is cancelled. previously matched by a regular pattern, the match is cancelled. Notably,
Notably, this can be used with `--exclude-file` to cancel the this can be used with `--exclude-file` to cancel the exclusion of some files.
exclusion of some files.
It works similarly to `gitignore`, with the same limitation: once a It works similarly to `.gitignore`, with the same limitation; Once a directory
directory is excluded, it is not possible to include files inside the is excluded, it is not possible to include files inside the directory.
directory.
Example of use (as an exclude pattern for backup): Example of use as an exclude pattern for the `backup` command:
$HOME/**/* $HOME/**/*
!$HOME/Documents !$HOME/Documents

View File

@ -1,8 +1,9 @@
Bugfix: Make cache crash-resistant and usable by multiple concurrent processes Bugfix: Make cache crash-resistant and usable by multiple concurrent processes
The restic cache directory ($RESTIC_CACHE_DIR) could end up in a broken state The restic cache directory (`RESTIC_CACHE_DIR`) could end up in a broken state
in the event of restic (or the OS) crashing. This is now less likely to occur in the event of restic (or the OS) crashing. This is now less likely to occur
as files are downloaded to a temporary location before being moved in place. as files are downloaded to a temporary location before being moved to their
proper location.
This also allows multiple concurrent restic processes to operate on a single This also allows multiple concurrent restic processes to operate on a single
repository without conflicts. Previously, concurrent operations could cause repository without conflicts. Previously, concurrent operations could cause

View File

@ -1,7 +1,10 @@
Enhancement: Add warning for S3 if partial credentials are provided Enhancement: Add warning for S3 if partial credentials are provided
Check if both the AWS key ID and secret environment variables are set Previously restic did not notify about incomplete credentials when using the
before connecting to the remote server and report an error if not. S3 backend, instead just reporting access denied.
Restic now checks that both the AWS key ID and secret environment variables are
set before connecting to the remote server, and reports an error if not.
https://github.com/restic/restic/issues/2388 https://github.com/restic/restic/issues/2388
https://github.com/restic/restic/pull/3532 https://github.com/restic/restic/pull/3532

View File

@ -1,9 +1,9 @@
Bugfix: Improve error handling of repository locking Bugfix: Improve error handling of repository locking
When the lock refresh failed to delete the old lock file, it forgot about the Previously, when the lock refresh failed to delete the old lock file, it forgot
newly created one. Instead it continued trying to delete the old (usually no about the newly created one. Instead it continued trying to delete the old
longer existing) lock file and thus over time lots of lock files accumulated. (usually no longer existing) lock file and thus over time lots of lock files
This has been fixed. accumulated. This has now been fixed.
https://github.com/restic/restic/issues/2452 https://github.com/restic/restic/issues/2452
https://github.com/restic/restic/issues/2473 https://github.com/restic/restic/issues/2473

View File

@ -1,11 +1,8 @@
Enhancement: Support JSON output and quiet mode for diff Enhancement: Support JSON output and quiet mode for the `diff` command
We've added support for getting machine-readable output for snapshot diff, just pass the The `diff` command now supports outputting machine-readable output in JSON
flag `--json` for `restic diff` and restic will output a JSON-encoded diff stats and change format. To enable this, pass the `--json` option to the command. To only print
list. the summary and suppress detailed output, pass the `--quiet` option.
Passing the `--quiet` flag to the `diff` command will only print the summary
and suppress the detailed output.
https://github.com/restic/restic/issues/2508 https://github.com/restic/restic/issues/2508
https://github.com/restic/restic/pull/3592 https://github.com/restic/restic/pull/3592

View File

@ -1,8 +1,8 @@
Enhancement: Add flag to disable TLS verification for self-signed certificates Enhancement: Add flag to disable TLS verification for self-signed certificates
We've added a flag, `--insecure-tls`, to allow disabling There is now an `--insecure-tls` global option in restic, which disables TLS
TLS verification for self-signed certificates in order to support verification for self-signed certificates in order to support some development
some development workflows. workflows.
https://github.com/restic/restic/issues/2656 https://github.com/restic/restic/issues/2656
https://github.com/restic/restic/pull/2657 https://github.com/restic/restic/pull/2657

View File

@ -1,8 +1,8 @@
Bugfix: Don't print progress for `backup --json --quiet` Bugfix: Don't print progress for `backup --json --quiet`
Unlike the text output, the json output format still printed progress Unlike the text output, the `--json` output format still printed progress
information even in quiet mode. This has been fixed by always disabling the information even in `--quiet` mode. This has now been fixed by always
progress output in quiet mode. disabling the progress output in quiet mode.
https://github.com/restic/restic/issues/2738 https://github.com/restic/restic/issues/2738
https://github.com/restic/restic/pull/3264 https://github.com/restic/restic/pull/3264

View File

@ -1,10 +1,9 @@
Enhancement: Atomic uploads for SFTP Enhancement: Atomic uploads for the SFTP backend
The SFTP backend did not upload files atomically. An interrupted upload could The SFTP backend did not upload files atomically. An interrupted upload could
leave an incomplete file behind which could prevent restic from accessing the leave an incomplete file behind which could prevent restic from accessing the
repository. repository. This has now been fixed and uploads in the SFTP backend are done
atomically.
Uploads in the SFTP backend are now done atomically.
https://github.com/restic/restic/issues/3003 https://github.com/restic/restic/issues/3003
https://github.com/restic/restic/pull/3524 https://github.com/restic/restic/pull/3524

View File

@ -1,7 +1,6 @@
Enhancement: Add xattr support for Solaris Enhancement: Add xattr (extended attributes) support for Solaris
We added xattr support for the Solaris operating system. This enables restic Restic now supports xattr for the Solaris operating system.
to support xattrs on Solaris.
https://github.com/restic/restic/issues/3127 https://github.com/restic/restic/issues/3127
https://github.com/restic/restic/pull/3628 https://github.com/restic/restic/pull/3628

View File

@ -1,9 +1,8 @@
Change: honor RESTIC_CACHE_DIR environment variable in the check command Bugfix: Make `check` command honor `RESTIC_CACHE_DIR` environment variable
--cache-dir option doesn't honor the RESTIC_CACHE_DIR environment variable by Previously, the `check` command didn't honor the `RESTIC_CACHE_DIR` environment
default. This fixes an issue with the restic check command that doesn't obey the variable, which caused problems in certain system/usage configurations. This
RESTIC_CACHE_DIR environment variable. Extend the behavior of cache command to has now been fixed.
manage directories created by restic check.
https://github.com/restic/restic/issues/3382 https://github.com/restic/restic/issues/3382
https://github.com/restic/restic/pull/3474 https://github.com/restic/restic/pull/3474

View File

@ -1,9 +1,10 @@
Enhancement: Skip lock creation on forget if --no-lock and --dry-run Enhancement: Skip lock creation on `forget` if `--no-lock` and `--dry-run`
Restic used to silently ignore --no-lock option of forget. It now skips Restic used to silently ignore the `--no-lock` option of the `forget` command.
creation of lock file in case of both --dry-run and --no-lock are specified. If
--no-lock option is specified without --dry-run then restic prints a warning It now skips creation of lock file in case both `--dry-run` and `--no-lock`
message to stderr. are specified. If `--no-lock` option is specified without `--dry-run`, restic
prints a warning message to stderr.
https://github.com/restic/restic/issues/3464 https://github.com/restic/restic/issues/3464
https://github.com/restic/restic/pull/3623 https://github.com/restic/restic/pull/3623

View File

@ -1,9 +1,8 @@
Bugfix: Make copy command honor `--no-lock` for source repository Bugfix: Make `copy` command honor `--no-lock` for source repository
When passing the `--no-lock` flag to the copy command, restic still attempted The `copy` command previously did not respect the `--no-lock` option for the
to lock the source repository, causing failures on read-only storage backends. source repository, causing failures with read-only storage backends. This has
`--no-lock` is now respected and copy then no longer creates a lock in the now been fixed such that the option is now respected.
source repository.
https://github.com/restic/restic/issues/3518 https://github.com/restic/restic/issues/3518
https://github.com/restic/restic/pull/3589 https://github.com/restic/restic/pull/3589

View File

@ -1,8 +1,8 @@
Bugfix: Improve handling of temporary B2 delete errors Enhancement: Improve handling of temporary B2 delete errors
Deleting files on B2 can sometimes fail temporarily, which requires restic to Deleting files on B2 could sometimes fail temporarily, which required restic to
retry the delete operation. In some cases the file was deleted nevertheless retry the delete operation. In some cases the file was deleted nevertheless,
causing the retries and ultimately the restic command to fail. This has been causing the retries and ultimately the restic command to fail. This has now been
fixed. fixed.
https://github.com/restic/restic/issues/3541 https://github.com/restic/restic/issues/3541

View File

@ -1,7 +1,7 @@
Enhancement: Add file mode in symbolic notation to `ls --json` Enhancement: Add file mode in symbolic notation to `ls --json`
Now `restic ls --json` provides mode in symbolic notation aligned The `ls --json` command now provides the file mode in symbolic notation (using
with `restic find --json`. the `permissions` key), aligned with `find --json`.
https://github.com/restic/restic/issues/3542 https://github.com/restic/restic/issues/3542
https://github.com/restic/restic/pull/3573 https://github.com/restic/restic/pull/3573

View File

@ -1,8 +1,9 @@
Bugfix: Fix hang with Backblaze B2 if SSL certificate authority error Bugfix: Fix hang with Backblaze B2 on SSL certificate authority error
If a request failed with an SSL unknown certificate authority error, the Previously, if a request failed with an SSL unknown certificate authority
B2 backend retried indefinitely and restic would appear to hang. error, the B2 backend retried indefinitely and restic would appear to hang.
It now returns the error and restic fails with an error message.
This has now been fixed and restic instead fails with an error message.
https://github.com/restic/restic/issues/3556 https://github.com/restic/restic/issues/3556
https://github.com/restic/restic/issues/2355 https://github.com/restic/restic/issues/2355

View File

@ -1,11 +1,15 @@
Bugfix: Fix rclone backend prematurely exiting when receiving SIGINT on Windows Bugfix: Fix rclone backend prematurely exiting when receiving SIGINT on Windows
On Windows, Restic now start the rclone process detached from the Previously, pressing Ctrl+C in a Windows console where restic was running with
restic console (similar to starting processes on a new process rclone as the backend would cause rclone to exit prematurely due to getting a
group on Linux). Therefore, when Ctrl+C is pressed on the console `SIGINT` signal at the same time as restic. Restic would then wait for a long
where restic runs, restic could gracefully clean up using clone, time for time with "unexpected EOF" and "rclone stdio connection already closed"
and rclone won't exit prematurely leading to restic hanging up with errors.
"stdio pipes closed" errors.
https://github.com/restic/restic/issue/3601 This has now been fixed by restic starting the rclone process detached from the
https://github.com/restic/restic/pull/3602 console restic runs in (similar to starting processes in a new process group on
Linux), which enables restic to gracefully clean up rclone (which now never gets
the `SIGINT`).
https://github.com/restic/restic/issues/3601
https://github.com/restic/restic/pull/3602

View File

@ -1,13 +1,14 @@
Change: Backups from stdin no longer have a parent Change: Ignore parent snapshot for `backup --stdin`
Snapshots made with `restic backup --stdin` no longer have a parent snapshot. Restic uses a parent snapshot to speed up directory scanning when performing
Since parent snapshots are only used to skip files in the scanning phase backups, but this only wasted time and memory when the backup source is stdin
based on filename and timestamps, the parent snapshot of a `--stdin` snapshot (using the `--stdin` option of the `backup` command), since no directory scanning
was meaningless to begin with. Not setting a parent allows `restic backup` is performed in this case.
to skip some startup operations.
The `--parent` option is still available for `restic backup --stdin`, Snapshots made with `backup --stdin` no longer have a parent snapshot, which allows
but is now ignored. restic to skip some startup operations and saves a bit of resources.
The `--parent` option is still available for `backup --stdin`, but is now ignored.
https://github.com/restic/restic/issues/3641 https://github.com/restic/restic/issues/3641
https://github.com/restic/restic/pull/3645 https://github.com/restic/restic/pull/3645

View File

@ -1,4 +1,4 @@
Bugfix: restic mount now reports symlinks sizes Bugfix: The `mount` command now reports symlinks sizes
Symlinks used to have size zero in restic mountpoints, confusing some Symlinks used to have size zero in restic mountpoints, confusing some
third-party tools. They now have a size equal to the byte length of their third-party tools. They now have a size equal to the byte length of their

View File

@ -1,6 +1,7 @@
Enhancement: Speed up restic restore --verify Enhancement: Speed up the `restore --verify` command
The --verify option lets restic restore verify the file content after it has The `--verify` option lets the `restore` command verify the file content
restored a snapshot. We've sped up the verification by up to a factor of two. after it has restored a snapshot. The performance of this operation has
now been improved by up to a factor of two.
https://github.com/restic/restic/pull/2594 https://github.com/restic/restic/pull/2594

View File

@ -1,10 +1,10 @@
Enhancement: backup no longer updates file access times on Linux Enhancement: The `backup` command no longer updates file access times on Linux
When reading files during backup, restic caused the operating system to update When reading files during backup, restic used to cause the operating system to
the file access times. Note that this does not apply to filesystems with update the files' access times. Note that this did not apply to filesystems with
disabled file access times. disabled file access times.
Restic now instructs the operation system not to update the file access time, Restic now instructs the operating system not to update the file access time,
if the user running restic is the file owner or has root permissions. if the user running restic is the file owner or has root permissions.
https://github.com/restic/restic/pull/2816 https://github.com/restic/restic/pull/2816

View File

@ -1,7 +1,9 @@
Enhancement: Improve recover command Enhancement: Make `recover` collect only unreferenced trees
Restic recover used to generate a snapshot that contains all root trees Previously, the `recover` command used to generate a snapshot containing *all*
even those which are already referenced by a snapshot. root trees, even those which were already referenced by a snapshot.
It now only processes trees not referenced at all.
This has been improved such that it now only processes trees not already
referenced by any snapshot.
https://github.com/restic/restic/pull/2880 https://github.com/restic/restic/pull/2880

View File

@ -1,12 +1,12 @@
Enhancement: Verify that new or modified keys were stored correctly Enhancement: Verify that new or modified keys are stored correctly
When adding a new key or changing the password of a key, restic just created the When adding a new key or changing the password of a key, restic used to just
new key (and removed the old one, when changing the password). There was no create the new key (and remove the old one, when changing the password). There
verification that the new key was stored correctly and that it work. As the was no verification that the new key was stored correctly and works properly.
repository cannot be decrypted without a valid key file, this could in rare As the repository cannot be decrypted without a valid key file, this could in
cases cause the repository to become inaccessible. rare cases cause the repository to become inaccessible.
We have added a check that the new key actually works before continuing. This Restic now checks that new key files actually work before continuing. This
can protect against some (rare) cases of hardware or storage problems. can protect against some (rare) cases of hardware or storage problems.
https://github.com/restic/restic/pull/3429 https://github.com/restic/restic/pull/3429

View File

@ -1,7 +1,9 @@
Bugfix: rebuild-index failed if an index file was damaged Bugfix: `rebuild-index` failed if an index file was damaged
The `rebuild-index` command failed with an error if an index file was damaged Previously, the `rebuild-index` command would fail with an error if an index
or truncated. This has been fixed. A (slow) workaround is to use file was damaged or truncated. This has now been fixed.
On older restic versions, a (slow) workaround is to use
`rebuild-index --read-all-packs` or to manually delete the damaged index. `rebuild-index --read-all-packs` or to manually delete the damaged index.
https://github.com/restic/restic/pull/3488 https://github.com/restic/restic/pull/3488

View File

@ -1,8 +1,8 @@
Enhancement: Cache blobs read by the dump command Enhancement: Cache blobs read by the `dump` command
When dumping a file using the `restic dump` command, restic did not cache blobs When dumping a file using the `dump` command, restic did not cache blobs in any
in any way, so even consecutive runs of the same blob did get loaded from the way, so even consecutive runs of the same blob were loaded from the repository
repository again and again, slowing down the dump. again and again, slowing down the dump.
Now, the caching mechanism already used by the `fuse` command is also used by Now, the caching mechanism already used by the `fuse` command is also used by
the `dump` command. This makes dumping much faster, especially for sparse files. the `dump` command. This makes dumping much faster, especially for sparse files.

View File

@ -1,7 +1,8 @@
Enhancement: Support timeout configurable for rclone backend Enhancement: Support configurable timeout for the rclone backend
A slow rclone backend could cause restic to time out while waiting for the repository to open. A slow rclone backend could cause restic to time out while waiting for the
Restic now offers an `-o rclone.timeout` option to make this timeout configurable. repository to open. Restic now offers an `-o rclone.timeout` option to make
this timeout configurable.
https://github.com/restic/restic/issues/3511 https://github.com/restic/restic/issues/3511
https://github.com/restic/restic/pull/3514 https://github.com/restic/restic/pull/3514

View File

@ -1,7 +1,7 @@
Bugfix: Fix handling of `prune --max-repack-size=0` Bugfix: Fix handling of `prune --max-repack-size=0`
Restic ignored the `--max-repack-size` option when passing a value of 0. This Restic ignored the `--max-repack-size` option when passing a value of 0. This
has been fixed. has now been fixed.
As a workaround, `--max-repack-size=1` can be used with older versions of restic. As a workaround, `--max-repack-size=1` can be used with older versions of restic.

View File

@ -1,8 +1,9 @@
Enhancement: Improve restic copy performance by parallelizing IO Enhancement: Improve `copy` performance by parallelizing IO
Restic copy previously only used a single thread for copying blobs between Restic copy previously only used a single thread for copying blobs between
repositories, which resulted in limited performance when copying small blobs repositories, which resulted in limited performance when copying small blobs
to/from a high latency backend (i.e. any remote backend, especially b2). to/from a high latency backend (i.e. any remote backend, especially b2).
Copying will now use 8 parallel threads to increase the throughput of the copy Copying will now use 8 parallel threads to increase the throughput of the copy
operation. operation.

View File

@ -1,12 +1,11 @@
Bugfix: Avoid choosing parent snapshots newer than time of current snapshot Bugfix: Avoid choosing parent snapshots newer than time of new snapshot
`restic backup` (if a `--parent` is not provided) The `backup` command, when a `--parent` was not provided, previously chose the
previously chose the most recent matching snapshot as the parent snapshot. most recent matching snapshot as the parent snapshot. However, this didn't make
However, this didn't make sense when the user passed `--time` sense when the user passed `--time` to create a new snapshot older than the most
to create a snapshot older than the most recent snapshot. recent snapshot.
Instead, `restic backup` now chooses the most recent snapshot Instead, `backup` now chooses the most recent snapshot which is not newer than
which is not newer than the snapshot-being-created's timestamp, the snapshot-being-created's timestamp, to avoid any time travel.
to avoid any time travel.
https://github.com/restic/restic/pull/3619 https://github.com/restic/restic/pull/3619