2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-21 20:35:12 +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`
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
that the command will also display its own lock file which can be confusing.
had the problem that it wouldn't work for an exclusively locked repository and
that the command would also display its own lock file which can be confusing.
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
normal backup. Wrong filters could then cause files to be uploaded
unexpectedly. It was also not possible to approximately determine beforehand
how much data has to be uploaded.
Testing exclude filters and other configuration options was error prone as
wrong filters could cause files to be uploaded unintentionally. It was also
not possible to estimate beforehand how much data would be uploaded.
We added a new --dry-run/-n option to the backup command, which performs
all the normal steps of a backup without actually writing any changes to
the repository. Passing -vv will log information about files that would
be added, allowing verification of source and exclusion backup options
without committing changes to the repository.
The `backup` command now has a `--dry-run`/`-n` option, which performs all the
normal steps of a backup without actually writing anything to the repository.
Passing -vv will log information about files that would be added, allowing for
verification of source and exclusion options before running the real backup.
https://github.com/restic/restic/issues/1542
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
integrity of uploaded (encrypted) files. The verification works by informing
the backend about the expected hash of the uploaded file. This allows the
backend to verify the upload and thereby rules out any data corruption during
upload.
Previously only the B2 and partially the Swift backends verified the integrity
of uploaded (encrypted) files. The verification works by informing the backend
about the expected hash of the uploaded file. The backend then verifies the
upload and thereby rules out any data corruption during upload.
We have added upload checksums for the azure, gs, s3 and swift backends.
Restic can now be used to store backups in S3 buckets which have Object Lock
enabled.
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
used to store backups in S3 buckets which have Object Lock enabled.
https://github.com/restic/restic/issues/2202
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
was previously matched by a regular pattern, the match is cancelled.
Notably, this can be used with `--exclude-file` to cancel the
exclusion of some files.
If a pattern starts with an exclamation mark and it matches a file that was
previously matched by a regular pattern, the match is cancelled. Notably,
this can be used with `--exclude-file` to cancel the exclusion of some files.
It works similarly to `gitignore`, with the same limitation: once a
directory is excluded, it is not possible to include files inside the
directory.
It works similarly to `.gitignore`, with the same limitation; Once a directory
is excluded, it is not possible to include files inside the directory.
Example of use (as an exclude pattern for backup):
Example of use as an exclude pattern for the `backup` command:
$HOME/**/*
!$HOME/Documents

View File

@ -1,8 +1,9 @@
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
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
repository without conflicts. Previously, concurrent operations could cause

View File

@ -1,7 +1,10 @@
Enhancement: Add warning for S3 if partial credentials are provided
Check if both the AWS key ID and secret environment variables are set
before connecting to the remote server and report an error if not.
Previously restic did not notify about incomplete credentials when using the
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/pull/3532

View File

@ -1,9 +1,9 @@
Bugfix: Improve error handling of repository locking
When the lock refresh failed to delete the old lock file, it forgot about the
newly created one. Instead it continued trying to delete the old (usually no
longer existing) lock file and thus over time lots of lock files accumulated.
This has been fixed.
Previously, when the lock refresh failed to delete the old lock file, it forgot
about the newly created one. Instead it continued trying to delete the old
(usually no longer existing) lock file and thus over time lots of lock files
accumulated. This has now been fixed.
https://github.com/restic/restic/issues/2452
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
flag `--json` for `restic diff` and restic will output a JSON-encoded diff stats and change
list.
Passing the `--quiet` flag to the `diff` command will only print the summary
and suppress the detailed output.
The `diff` command now supports outputting machine-readable output in JSON
format. To enable this, pass the `--json` option to the command. To only print
the summary and suppress detailed output, pass the `--quiet` option.
https://github.com/restic/restic/issues/2508
https://github.com/restic/restic/pull/3592

View File

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

View File

@ -1,8 +1,8 @@
Bugfix: Don't print progress for `backup --json --quiet`
Unlike the text output, the json output format still printed progress
information even in quiet mode. This has been fixed by always disabling the
progress output in quiet mode.
Unlike the text output, the `--json` output format still printed progress
information even in `--quiet` mode. This has now been fixed by always
disabling the progress output in quiet mode.
https://github.com/restic/restic/issues/2738
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
leave an incomplete file behind which could prevent restic from accessing the
repository.
Uploads in the SFTP backend are now done atomically.
repository. This has now been fixed and uploads in the SFTP backend are done
atomically.
https://github.com/restic/restic/issues/3003
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
to support xattrs on Solaris.
Restic now supports xattr for the Solaris operating system.
https://github.com/restic/restic/issues/3127
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
default. This fixes an issue with the restic check command that doesn't obey the
RESTIC_CACHE_DIR environment variable. Extend the behavior of cache command to
manage directories created by restic check.
Previously, the `check` command didn't honor the `RESTIC_CACHE_DIR` environment
variable, which caused problems in certain system/usage configurations. This
has now been fixed.
https://github.com/restic/restic/issues/3382
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
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
message to stderr.
Restic used to silently ignore the `--no-lock` option of the `forget` command.
It now skips creation of lock file in case both `--dry-run` and `--no-lock`
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/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
to lock the source repository, causing failures on read-only storage backends.
`--no-lock` is now respected and copy then no longer creates a lock in the
source repository.
The `copy` command previously did not respect the `--no-lock` option for the
source repository, causing failures with read-only storage backends. This has
now been fixed such that the option is now respected.
https://github.com/restic/restic/issues/3518
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
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
Deleting files on B2 could sometimes fail temporarily, which required restic to
retry the delete operation. In some cases the file was deleted nevertheless,
causing the retries and ultimately the restic command to fail. This has now been
fixed.
https://github.com/restic/restic/issues/3541

View File

@ -1,7 +1,7 @@
Enhancement: Add file mode in symbolic notation to `ls --json`
Now `restic ls --json` provides mode in symbolic notation aligned
with `restic find --json`.
The `ls --json` command now provides the file mode in symbolic notation (using
the `permissions` key), aligned with `find --json`.
https://github.com/restic/restic/issues/3542
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
B2 backend retried indefinitely and restic would appear to hang.
It now returns the error and restic fails with an error message.
Previously, if a request failed with an SSL unknown certificate authority
error, the B2 backend retried indefinitely and restic would appear to hang.
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/2355

View File

@ -1,11 +1,15 @@
Bugfix: Fix rclone backend prematurely exiting when receiving SIGINT on Windows
On Windows, Restic now start the rclone process detached from the
restic console (similar to starting processes on a new process
group on Linux). Therefore, when Ctrl+C is pressed on the console
where restic runs, restic could gracefully clean up using clone,
and rclone won't exit prematurely leading to restic hanging up with
"stdio pipes closed" errors.
Previously, pressing Ctrl+C in a Windows console where restic was running with
rclone as the backend would cause rclone to exit prematurely due to getting a
`SIGINT` signal at the same time as restic. Restic would then wait for a long
time for time with "unexpected EOF" and "rclone stdio connection already closed"
errors.
https://github.com/restic/restic/issue/3601
https://github.com/restic/restic/pull/3602
This has now been fixed by restic starting the rclone process detached from the
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.
Since parent snapshots are only used to skip files in the scanning phase
based on filename and timestamps, the parent snapshot of a `--stdin` snapshot
was meaningless to begin with. Not setting a parent allows `restic backup`
to skip some startup operations.
Restic uses a parent snapshot to speed up directory scanning when performing
backups, but this only wasted time and memory when the backup source is stdin
(using the `--stdin` option of the `backup` command), since no directory scanning
is performed in this case.
The `--parent` option is still available for `restic backup --stdin`,
but is now ignored.
Snapshots made with `backup --stdin` no longer have a parent snapshot, which allows
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/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
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
restored a snapshot. We've sped up the verification by up to a factor of two.
The `--verify` option lets the `restore` command verify the file content
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

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
the file access times. Note that this does not apply to filesystems with
When reading files during backup, restic used to cause the operating system to
update the files' access times. Note that this did not apply to filesystems with
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.
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
even those which are already referenced by a snapshot.
It now only processes trees not referenced at all.
Previously, the `recover` command used to generate a snapshot containing *all*
root trees, even those which were already referenced by a snapshot.
This has been improved such that it now only processes trees not already
referenced by any snapshot.
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
new key (and removed the old one, when changing the password). There was no
verification that the new key was stored correctly and that it work. As the
repository cannot be decrypted without a valid key file, this could in rare
cases cause the repository to become inaccessible.
When adding a new key or changing the password of a key, restic used to just
create the new key (and remove the old one, when changing the password). There
was no verification that the new key was stored correctly and works properly.
As the repository cannot be decrypted without a valid key file, this could in
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.
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
or truncated. This has been fixed. A (slow) workaround is to use
Previously, the `rebuild-index` command would fail with an error if an index
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.
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
in any way, so even consecutive runs of the same blob did get loaded from the
repository again and again, slowing down the dump.
When dumping a file using the `dump` command, restic did not cache blobs in any
way, so even consecutive runs of the same blob were loaded from the repository
again and again, slowing down the dump.
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.

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.
Restic now offers an `-o rclone.timeout` option to make this timeout configurable.
A slow rclone backend could cause restic to time out while waiting for the
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/pull/3514
https://github.com/restic/restic/pull/3514

View File

@ -1,7 +1,7 @@
Bugfix: Fix handling of `prune --max-repack-size=0`
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.

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
repositories, which resulted in limited performance when copying small blobs
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
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)
previously chose the most recent matching snapshot as the parent snapshot.
However, this didn't make sense when the user passed `--time`
to create a snapshot older than the most recent snapshot.
The `backup` command, when a `--parent` was not provided, previously chose the
most recent matching snapshot as the parent snapshot. However, this didn't make
sense when the user passed `--time` to create a new snapshot older than the most
recent snapshot.
Instead, `restic backup` now chooses the most recent snapshot
which is not newer than the snapshot-being-created's timestamp,
to avoid any time travel.
Instead, `backup` now chooses the most recent snapshot which is not newer than
the snapshot-being-created's timestamp, to avoid any time travel.
https://github.com/restic/restic/pull/3619