diff --git a/CHANGELOG.md b/CHANGELOG.md index 011b3defc..17e931115 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Table of Contents +* [Changelog for 0.19.1](#changelog-for-restic-0191-2026-07-05) * [Changelog for 0.19.0](#changelog-for-restic-0190-2026-06-09) * [Changelog for 0.18.1](#changelog-for-restic-0181-2025-09-21) * [Changelog for 0.18.0](#changelog-for-restic-0180-2025-03-27) @@ -41,6 +42,116 @@ * [Changelog for 0.6.0](#changelog-for-restic-060-2017-05-29) +# Changelog for restic 0.19.1 (2026-07-05) +The following sections list the changes in restic 0.19.1 relevant to +restic users. The changes are ordered by importance. + +## Summary + + * Fix #5234: Prevent mounting over the repository directory + * Fix #5667: Skip inaccessible `backup` source paths + * Fix #5722: Update `mount` latest symlink after snapshot reload + * Fix #21866: Hide `stats` progress bar in JSON mode + * Fix #21869: Restore old behavior of `snapshots --latest ` without `--group-by` + * Fix #21876: Show timezone location in `snapshots` output + * Fix #21879: Prevent crash in mountpoint validation if mountpoint is inaccessible + * Fix #21895: Remove read-only files via the SFTP backend on Windows servers + * Fix #21899: Make `backup` respect excludes for duplicate directory entries + +## Details + + * Bugfix #5234: Prevent mounting over the repository directory + + Using a local repository directory as the `mount` target — or a path that + contains it, or that it contains — caused the FUSE server to read its own + backend files through the new mount, deadlocking the kernel and requiring a long + reboot to recover. + + Restic now resolves both paths and refuses any such overlap with a clear error + before mounting. + + https://github.com/restic/restic/issues/5234 + https://github.com/restic/restic/pull/5348 + + * Bugfix #5667: Skip inaccessible `backup` source paths + + The `backup` command only skipped source paths that did not exist. A path that + could not be accessed for another reason, such as a malformed path on Windows, + was kept and produced an empty snapshot. Restic now skips any such path and + aborts if none remain. + + https://github.com/restic/restic/issues/5667 + https://github.com/restic/restic/pull/21852 + + * Bugfix #5722: Update `mount` latest symlink after snapshot reload + + When `restic mount` was kept running while new snapshots were created, the new + snapshots appeared in the mountpoint, but the `latest` symlink could still point + to the previously latest snapshot. Restic now invalidates the cached snapshot + directory entries after a snapshot reload so that `latest` points to the newest + snapshot. + + https://github.com/restic/restic/issues/5722 + https://github.com/restic/restic/pull/21873 + + * Bugfix #21866: Hide `stats` progress bar in JSON mode + + Since restic 0.19.0, the `stats` command shows a progress bar. This progress bar + was unintentionally displayed also when using the `--json` option, mixing + regular text output with JSON. This is now fixed. + + https://github.com/restic/restic/issues/21866 + https://github.com/restic/restic/pull/21871 + + * Bugfix #21869: Restore old behavior of `snapshots --latest ` without `--group-by` + + Restic 0.19.0 accidentally changed the behavior of `snapshots --latest ` to + no longer group snapshots by host and paths by default. + + The `snapshots --latest ` command now again uses the old behavior of grouping + by host and paths when `--group-by` is not specified. However, when specifying + `--group-by` the output is still grouped as requested, as in restic 0.19.0. + + https://github.com/restic/restic/issues/21869 + https://github.com/restic/restic/pull/21875 + + * Bugfix #21876: Show timezone location in `snapshots` output + + With restic 0.19.0, the `snapshots` command printed the current timezone when + listing snapshots. However, that timezone label might change during the year, + for example with daylight saving time. Restic now prints a more consistent and + shorter version of the text. + + https://github.com/restic/restic/pull/21876 + https://forum.restic.net/t/possible-bug-in-timezone-naming/10867 + + * Bugfix #21879: Prevent crash in mountpoint validation if mountpoint is inaccessible + + Since restic 0.19.0, the `mount` command validates a mountpoint before loading + the repository. If restic was unable to stat the mountpoint, this would result + in a crash. This has now been fixed to correctly return an error instead. + + https://github.com/restic/restic/pull/21879 + + * Bugfix #21895: Remove read-only files via the SFTP backend on Windows servers + + Since restic 0.19.0, repository files on the SFTP backend are marked read-only + after save. On Windows SFTP servers, removing them failed with a permission + error. The SFTP backend now clears the read-only flag before removing the file. + + https://github.com/restic/restic/issues/21895 + https://github.com/restic/restic/pull/21897 + + * Bugfix #21899: Make `backup` respect excludes for duplicate directory entries + + Since restic 0.19.0, backing up a directory with duplicate directory entries + always produced "Warning: at least one source file could not be read", even when + those files were excluded. This has now been fixed. + + https://github.com/restic/restic/issues/21899 + https://github.com/restic/restic/pull/21900 + + # Changelog for restic 0.19.0 (2026-06-09) The following sections list the changes in restic 0.19.0 relevant to restic users. The changes are ordered by importance. diff --git a/VERSION b/VERSION index 7120f981c..c06d565cb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.19.0-dev +0.19.1-dev diff --git a/changelog/0.19.1_2026-07-05/issue-21866 b/changelog/0.19.1_2026-07-05/issue-21866 new file mode 100644 index 000000000..3e6141874 --- /dev/null +++ b/changelog/0.19.1_2026-07-05/issue-21866 @@ -0,0 +1,8 @@ +Bugfix: Hide `stats` progress bar in JSON mode + +Since restic 0.19.0, the `stats` command shows a progress bar. This +progress bar was unintentionally displayed also when using the `--json` +option, mixing regular text output with JSON. This is now fixed. + +https://github.com/restic/restic/issues/21866 +https://github.com/restic/restic/pull/21871 diff --git a/changelog/0.19.1_2026-07-05/issue-21869 b/changelog/0.19.1_2026-07-05/issue-21869 new file mode 100644 index 000000000..3b69fce76 --- /dev/null +++ b/changelog/0.19.1_2026-07-05/issue-21869 @@ -0,0 +1,12 @@ +Bugfix: Restore old behavior of `snapshots --latest ` without `--group-by` + +Restic 0.19.0 accidentally changed the behavior of `snapshots --latest ` +to no longer group snapshots by host and paths by default. + +The `snapshots --latest ` command now again uses the old behavior of +grouping by host and paths when `--group-by` is not specified. However, when +specifying `--group-by` the output is still grouped as requested, as in restic +0.19.0. + +https://github.com/restic/restic/issues/21869 +https://github.com/restic/restic/pull/21875 diff --git a/changelog/unreleased/issue-21895 b/changelog/0.19.1_2026-07-05/issue-21895 similarity index 100% rename from changelog/unreleased/issue-21895 rename to changelog/0.19.1_2026-07-05/issue-21895 diff --git a/changelog/0.19.1_2026-07-05/issue-21899 b/changelog/0.19.1_2026-07-05/issue-21899 new file mode 100644 index 000000000..87c32d068 --- /dev/null +++ b/changelog/0.19.1_2026-07-05/issue-21899 @@ -0,0 +1,8 @@ +Bugfix: Make `backup` respect excludes for duplicate directory entries + +Since restic 0.19.0, backing up a directory with duplicate directory +entries always produced "Warning: at least one source file could not be +read", even when those files were excluded. This has now been fixed. + +https://github.com/restic/restic/issues/21899 +https://github.com/restic/restic/pull/21900 diff --git a/changelog/unreleased/issue-5234 b/changelog/0.19.1_2026-07-05/issue-5234 similarity index 100% rename from changelog/unreleased/issue-5234 rename to changelog/0.19.1_2026-07-05/issue-5234 diff --git a/changelog/unreleased/issue-5667 b/changelog/0.19.1_2026-07-05/issue-5667 similarity index 100% rename from changelog/unreleased/issue-5667 rename to changelog/0.19.1_2026-07-05/issue-5667 diff --git a/changelog/unreleased/issue-5722 b/changelog/0.19.1_2026-07-05/issue-5722 similarity index 100% rename from changelog/unreleased/issue-5722 rename to changelog/0.19.1_2026-07-05/issue-5722 diff --git a/changelog/0.19.1_2026-07-05/pull-21876 b/changelog/0.19.1_2026-07-05/pull-21876 new file mode 100644 index 000000000..008a70318 --- /dev/null +++ b/changelog/0.19.1_2026-07-05/pull-21876 @@ -0,0 +1,9 @@ +Bugfix: Show timezone location in `snapshots` output + +With restic 0.19.0, the `snapshots` command printed the current timezone when +listing snapshots. However, that timezone label might change during the year, +for example with daylight saving time. Restic now prints a more consistent and +shorter version of the text. + +https://github.com/restic/restic/pull/21876 +https://forum.restic.net/t/possible-bug-in-timezone-naming/10867 diff --git a/changelog/unreleased/pull-21879 b/changelog/0.19.1_2026-07-05/pull-21879 similarity index 61% rename from changelog/unreleased/pull-21879 rename to changelog/0.19.1_2026-07-05/pull-21879 index a64a4900f..00fc1948f 100644 --- a/changelog/unreleased/pull-21879 +++ b/changelog/0.19.1_2026-07-05/pull-21879 @@ -1,7 +1,7 @@ -Bugfix: prevent crash in mountpoint validation if mountpoint is inaccessible +Bugfix: Prevent crash in mountpoint validation if mountpoint is inaccessible Since restic 0.19.0, the `mount` command validates a mountpoint before loading the repository. If restic was unable to stat the mountpoint, this would result -in a crash. This has been fixed to correctly return an error instead. +in a crash. This has now been fixed to correctly return an error instead. https://github.com/restic/restic/pull/21879 diff --git a/changelog/unreleased/issue-21866 b/changelog/unreleased/issue-21866 deleted file mode 100644 index 815a472c1..000000000 --- a/changelog/unreleased/issue-21866 +++ /dev/null @@ -1,8 +0,0 @@ -Bugfix: Hide progress bar for stats command in JSON mode - -Since restic 0.19.0, the stats command shows a progress bar. However, -it was also active when given the `--json` option resulting in text -mixed with JSON. This has been fixed. - -https://github.com/restic/restic/issues/21866 -https://github.com/restic/restic/pull/21871 diff --git a/changelog/unreleased/issue-21869 b/changelog/unreleased/issue-21869 deleted file mode 100644 index 774c5e4d1..000000000 --- a/changelog/unreleased/issue-21869 +++ /dev/null @@ -1,11 +0,0 @@ -Bugfix: Restore old behavior of `snapshots --latest ` without `--group-by` - -Restic 0.19.0 changed the behavior of `snapshots --latest ` to no longer -group snapshots by default. - -`snapshots --latest ` has been reverted to the old behavior if `--group-by` -is not specified. When specifying `--group-by`, the output is still grouped as -requested like in restic 0.19.0. - -https://github.com/restic/restic/issues/21869 -https://github.com/restic/restic/pull/21875 diff --git a/changelog/unreleased/issue-21899 b/changelog/unreleased/issue-21899 deleted file mode 100644 index 1eceba1d9..000000000 --- a/changelog/unreleased/issue-21899 +++ /dev/null @@ -1,9 +0,0 @@ -Bugfix: Fix excludes of duplicate directory entries during `backup` - -Since restic 0.19.0, creating a backup of a directory containing -duplicate directory entries always resulted in "Warning: at least -one source file could not be read" even if the files in question -were excluded. This has been fixed. - -https://github.com/restic/restic/issues/21899 -https://github.com/restic/restic/pull/21900 diff --git a/changelog/unreleased/pull-21876 b/changelog/unreleased/pull-21876 deleted file mode 100644 index ec8e2d8f1..000000000 --- a/changelog/unreleased/pull-21876 +++ /dev/null @@ -1,8 +0,0 @@ -Bugfix: Show timezone location in `snapshots` output - -Since restic 0.19.0, the `snapshots` command printed the current timezone when -listing snapshots. However, the timezone can change during the year, for example, -due to daylight saving time. Instead just print the name of the current location. - -https://github.com/restic/restic/pull/21876 -https://forum.restic.net/t/possible-bug-in-timezone-naming/10867 diff --git a/internal/global/global.go b/internal/global/global.go index d4ab38b7d..e44182de1 100644 --- a/internal/global/global.go +++ b/internal/global/global.go @@ -34,7 +34,7 @@ import ( // to a missing backend storage location or config file var ErrNoRepository = errors.New("repository does not exist") -const Version = "0.19.0-dev (compiled manually)" +const Version = "0.19.1-dev (compiled manually)" // TimeFormat is the format used for all timestamps printed by restic. const TimeFormat = "2006-01-02 15:04:05"