diff --git a/changelog/0.6.0/issue-953 b/changelog/0.6.0/issue-953 new file mode 100644 index 000000000..04ac5cc18 --- /dev/null +++ b/changelog/0.6.0/issue-953 @@ -0,0 +1,8 @@ +Enhancement: Make `forget` consistent + +The `forget` command was corrected to be more consistent in which snapshots are +to be forgotten. It is possible that the new code removes more snapshots than +before, so please review what would be deleted by using the `--dry-run` option. + +https://github.com/restic/restic/pull/957 +https://github.com/restic/restic/issues/953 diff --git a/changelog/0.6.0/issue-965 b/changelog/0.6.0/issue-965 new file mode 100644 index 000000000..089b39b16 --- /dev/null +++ b/changelog/0.6.0/issue-965 @@ -0,0 +1,11 @@ +Enhancement: Unify repository layout for all backends + +Up to now the s3 backend used a special repository layout. We've decided to +unify the repository layout and implemented the default layout also for the s3 +backend. For creating a new repository on s3 with the default layout, use +`restic -o s3.layout=default init`. For further commands the option is not +necessary any more, restic will automatically detect the correct layout to use. +A future version will switch to the default layout for new repositories. + +https://github.com/restic/restic/pull/966 +https://github.com/restic/restic/issues/965 diff --git a/changelog/0.6.0/pull-962 b/changelog/0.6.0/pull-962 new file mode 100644 index 000000000..6bf14a48b --- /dev/null +++ b/changelog/0.6.0/pull-962 @@ -0,0 +1,15 @@ +Enhancement: Improve memory and runtime for the s3 backend + +We've updated the library used for accessing s3, switched to using a lower +level API and added caching for some requests. This lead to a decrease in +memory usage and a great speedup. In addition, we added benchmark functions for +all backends, so we can track improvements over time. The Continuous +Integration test service we're using (Travis) now runs the s3 backend tests not +only against a Minio server, but also against the Amazon s3 live service, so we +should be notified of any regressions much sooner. + +https://github.com/restic/restic/pull/962 +https://github.com/restic/restic/pull/960 +https://github.com/restic/restic/pull/946 +https://github.com/restic/restic/pull/938 +https://github.com/restic/restic/pull/883 diff --git a/changelog/0.6.1/issue-985 b/changelog/0.6.1/issue-985 new file mode 100644 index 000000000..d20f20326 --- /dev/null +++ b/changelog/0.6.1/issue-985 @@ -0,0 +1,8 @@ +Enhancement: Allow multiple parallel idle HTTP connections + +Backends based on HTTP now allow several idle connections in parallel. This +is especially important for the REST backend, which (when used with a local +server) may create a lot connections and exhaust available ports quickly. + +https://github.com/restic/restic/issues/985 +https://github.com/restic/restic/pull/986 diff --git a/changelog/0.6.1/pull-891 b/changelog/0.6.1/pull-891 new file mode 100644 index 000000000..1d07a8dbd --- /dev/null +++ b/changelog/0.6.1/pull-891 @@ -0,0 +1,6 @@ +Enhancement: Remove temporary path from binary in `build.go` + +The `build.go` now strips the temporary directory used for compilation from +the binary. This is the first step in enabling reproducible builds. + +https://github.com/restic/restic/pull/981 diff --git a/changelog/0.6.1/pull-974 b/changelog/0.6.1/pull-974 new file mode 100644 index 000000000..1358e2339 --- /dev/null +++ b/changelog/0.6.1/pull-974 @@ -0,0 +1,7 @@ +Enhancement: Remove regular status reports + +Regular status report: We've removed the status report that was printed +every 10 seconds when restic is run non-interactively. You can still force +reporting the current status by sending a `USR1` signal to the process. + +https://github.com/restic/restic/pull/974 diff --git a/changelog/0.7.0/issue-1013 b/changelog/0.7.0/issue-1013 new file mode 100644 index 000000000..5f9b7a786 --- /dev/null +++ b/changelog/0.7.0/issue-1013 @@ -0,0 +1,9 @@ +Bugfix: Switch back to using the high-level minio-go API for s3 + +For the s3 backend we're back to using the high-level API the s3 client library +for uploading data, a few users reported dropped connections (which the library +will automatically retry now). + +https://github.com/restic/restic/issues/1013 +https://github.com/restic/restic/issues/1023 +https://github.com/restic/restic/pull/1025 diff --git a/changelog/0.7.0/issue-1021 b/changelog/0.7.0/issue-1021 new file mode 100644 index 000000000..da727269f --- /dev/null +++ b/changelog/0.7.0/issue-1021 @@ -0,0 +1,7 @@ +Enhancement: Detect invalid backend name and print error + +restic now tries to detect when an invalid/unknown backend is used and +returns an error message. + +https://github.com/restic/restic/issues/1021 +https://github.com/restic/restic/pull/1070 diff --git a/changelog/0.7.0/issue-1029 b/changelog/0.7.0/issue-1029 new file mode 100644 index 000000000..eb1f700d5 --- /dev/null +++ b/changelog/0.7.0/issue-1029 @@ -0,0 +1,8 @@ +Enhancement: Remove invalid pack files when `prune` is run + +The `prune` command has been improved and will now remove invalid pack files, +for example files that have not been uploaded completely because a backup was +interrupted. + +https://github.com/restic/restic/issues/1029 +https://github.com/restic/restic/pull/1036 diff --git a/changelog/0.7.0/issue-512 b/changelog/0.7.0/issue-512 new file mode 100644 index 000000000..4b1163bf7 --- /dev/null +++ b/changelog/0.7.0/issue-512 @@ -0,0 +1,4 @@ +Enhancement: Add Backblaze B2 backend + +https://github.com/restic/restic/issues/512 +https://github.com/restic/restic/pull/978 diff --git a/changelog/0.7.0/issue-636 b/changelog/0.7.0/issue-636 new file mode 100644 index 000000000..d5e55b2ab --- /dev/null +++ b/changelog/0.7.0/issue-636 @@ -0,0 +1,9 @@ +Enhancement: Add dirs `tags` and `hosts` to fuse mount + +The fuse mount now has two more directories: `tags` contains a subdir for +each tag, which in turn contains only the snapshots that have this tag. The +subdir `hosts` contains a subdir for each host that has a snapshot, and the +subdir contains the snapshots for that host. + +https://github.com/restic/restic/issues/636 +https://github.com/restic/restic/pull/1050 diff --git a/changelog/0.7.0/issue-965 b/changelog/0.7.0/issue-965 new file mode 100644 index 000000000..6fbbb8acf --- /dev/null +++ b/changelog/0.7.0/issue-965 @@ -0,0 +1,8 @@ +Bugfix: Switch to `default` repo layout for the s3 backend + +The default layout for the s3 backend is now `default` (instead of `s3legacy`). +Also, there's a new `migrate` command to convert an existing repo, it can be +run like this: `restic migrate s3_layout` + +https://github.com/restic/restic/issues/965 +https://github.com/restic/restic/pull/1004 diff --git a/changelog/0.7.0/issue-989 b/changelog/0.7.0/issue-989 new file mode 100644 index 000000000..4e8da055b --- /dev/null +++ b/changelog/0.7.0/issue-989 @@ -0,0 +1,8 @@ +Enhancement: Improve performance of the `find` command + +Improved performance for the `find` command: Restic recognizes paths it has +already checked for the files in question, so the number of backend requests +is reduced a lot. + +https://github.com/restic/restic/issues/989 +https://github.com/restic/restic/pull/993 diff --git a/changelog/0.7.0/pull-975 b/changelog/0.7.0/pull-975 new file mode 100644 index 000000000..24172ac64 --- /dev/null +++ b/changelog/0.7.0/pull-975 @@ -0,0 +1,4 @@ +Enhancement: Add new backend for OpenStack Swift + +https://github.com/restic/restic/pull/975 +https://github.com/restic/restic/pull/648 diff --git a/changelog/0.7.0/pull-998 b/changelog/0.7.0/pull-998 new file mode 100644 index 000000000..0609030d4 --- /dev/null +++ b/changelog/0.7.0/pull-998 @@ -0,0 +1,5 @@ +Enhancement: Improve performance of the fuse mount + +Listing directories which contain large files now is significantly faster. + +https://github.com/restic/restic/pull/998 diff --git a/changelog/0.7.1/issue-1055 b/changelog/0.7.1/issue-1055 new file mode 100644 index 000000000..738475614 --- /dev/null +++ b/changelog/0.7.1/issue-1055 @@ -0,0 +1,10 @@ +Enhancement: Create subdirs below `data/` for local/sftp backends + +The local and sftp backends now create the subdirs below `data/` on +open/init. This way, restic makes sure that they always exist. This is +connected to an issue for the sftp server: + +https://github.com/restic/rest-server/pull/11#issuecomment-309879710 +https://github.com/restic/restic/issues/1055 +https://github.com/restic/restic/pull/1077 +https://github.com/restic/restic/pull/1105 diff --git a/changelog/0.7.1/issue-1067 b/changelog/0.7.1/issue-1067 new file mode 100644 index 000000000..e7acecf41 --- /dev/null +++ b/changelog/0.7.1/issue-1067 @@ -0,0 +1,8 @@ +Enhancement: Allow loading credentials for s3 from IAM + +When no S3 credentials are specified in the environment variables, restic +now tries to load credentials from an IAM instance profile when the s3 +backend is used. + +https://github.com/restic/restic/issues/1067 +https://github.com/restic/restic/pull/1086 diff --git a/changelog/0.7.1/issue-1073 b/changelog/0.7.1/issue-1073 new file mode 100644 index 000000000..048758662 --- /dev/null +++ b/changelog/0.7.1/issue-1073 @@ -0,0 +1,8 @@ +Enhancement: Add `migrate` cmd to migrate from `s3legacy` to `default` layout + +The `migrate` command for chaning the `s3legacy` layout to the `default` layout +for s3 backends has been improved: It can now be restarted with `restic migrate +--force s3_layout` and automatically retries operations on error. + +https://github.com/restic/restic/issues/1073 +https://github.com/restic/restic/pull/1075 diff --git a/changelog/0.7.1/issue-1081 b/changelog/0.7.1/issue-1081 new file mode 100644 index 000000000..bef658956 --- /dev/null +++ b/changelog/0.7.1/issue-1081 @@ -0,0 +1,4 @@ +Enhancement: Clarify semantic for `--tasg` for the `forget` command + +https://github.com/restic/restic/issues/1081 +https://github.com/restic/restic/pull/1090 diff --git a/changelog/0.7.1/plul-1080 b/changelog/0.7.1/plul-1080 new file mode 100644 index 000000000..3debc67aa --- /dev/null +++ b/changelog/0.7.1/plul-1080 @@ -0,0 +1,5 @@ +Enhancement: Ignore chmod() errors on filesystems which do not support it + +https://github.com/restic/restic/pull/1080 +https://github.com/restic/restic/pull/1112 + diff --git a/changelog/0.7.1/pull-1082 b/changelog/0.7.1/pull-1082 new file mode 100644 index 000000000..e49a7d812 --- /dev/null +++ b/changelog/0.7.1/pull-1082 @@ -0,0 +1,3 @@ +Enhancement: Print stats on SIGINFO on Darwin and FreeBSD (ctrl+t) + +https://github.com/restic/restic/pull/1082 diff --git a/changelog/0.7.1/pull-1115 b/changelog/0.7.1/pull-1115 new file mode 100644 index 000000000..580528ef9 --- /dev/null +++ b/changelog/0.7.1/pull-1115 @@ -0,0 +1,9 @@ +Bugfix: Fix `prune`, only include existing files in indexes + +A bug was found (and corrected) in the index rebuilding after prune, which led +to indexes which include blobs that were not present in the repo any more. +There were already checks in place which detected this situation and aborted +with an error message. A new run of either `prune` or `rebuild-index` corrected +the index files. This is now fixed and a test has been added to detect this. + +https://github.com/restic/restic/pull/1115 diff --git a/changelog/0.7.2/issue-1132 b/changelog/0.7.2/issue-1132 new file mode 100644 index 000000000..1c40e84b7 --- /dev/null +++ b/changelog/0.7.2/issue-1132 @@ -0,0 +1,8 @@ +Enhancement: Make `key` command always prompt for a password + +The `key` command now prompts for a password even if the original password +to access a repo has been specified via the `RESTIC_PASSWORD` environment +variable or a password file. + +https://github.com/restic/restic/issues/1132 +https://github.com/restic/restic/pull/1133 diff --git a/changelog/0.7.2/issue-1167 b/changelog/0.7.2/issue-1167 new file mode 100644 index 000000000..aff17ca22 --- /dev/null +++ b/changelog/0.7.2/issue-1167 @@ -0,0 +1,8 @@ +Bugfix: Do not create a local repo unless `init` is used + +When a restic command other than `init` is used with a local repository and the +repository directory does not exist, restic creates the directory structure. +That's an error, only the `init` command should create the dir. + +https://github.com/restic/restic/issues/1167 +https://github.com/restic/restic/pull/1182 diff --git a/changelog/0.7.2/issue-1179 b/changelog/0.7.2/issue-1179 new file mode 100644 index 000000000..d86b353d1 --- /dev/null +++ b/changelog/0.7.2/issue-1179 @@ -0,0 +1,4 @@ +Enhancement: Resolve name conflicts, append a counter + +https://github.com/restic/restic/issues/1179 +https://github.com/restic/restic/pull/1209 diff --git a/changelog/0.7.2/issue-1208 b/changelog/0.7.2/issue-1208 new file mode 100644 index 000000000..fdd9489d9 --- /dev/null +++ b/changelog/0.7.2/issue-1208 @@ -0,0 +1,7 @@ +Enhancement: Add `--compact` to `snapshots` command + +The option `--compact` was added to the `snapshots` command to get a better +overview of the snapshots in a repo. It limits each snapshot to a single line. + +https://github.com/restic/restic/issues/1218 +https://github.com/restic/restic/pull/1223 diff --git a/changelog/0.7.2/issue-317 b/changelog/0.7.2/issue-317 new file mode 100644 index 000000000..710c131fa --- /dev/null +++ b/changelog/0.7.2/issue-317 @@ -0,0 +1,10 @@ +Enhancement: Add `--exclude-caches` and `--exclude-if-present` + +A new option `--exclude-caches` was added that allows excluding cache +directories (that are tagged as such). This is a special case of a more generic +option `--exclude-if-present` which excludes a directory if a file with a +specific name (and contents) is present. + +https://github.com/restic/restic/issues/317 +https://github.com/restic/restic/pull/1170 +https://github.com/restic/restic/pull/1224 diff --git a/changelog/0.7.2/issues-697 b/changelog/0.7.2/issues-697 new file mode 100644 index 000000000..50bab3990 --- /dev/null +++ b/changelog/0.7.2/issues-697 @@ -0,0 +1,4 @@ +Enhancement: Automatically generate man pages for all restic commands + +https://github.com/restic/restic/issues/697 +https://github.com/restic/restic/pull/1147 diff --git a/changelog/0.7.2/pull-1044 b/changelog/0.7.2/pull-1044 new file mode 100644 index 000000000..97250cf6b --- /dev/null +++ b/changelog/0.7.2/pull-1044 @@ -0,0 +1,3 @@ +Enhancement: Improve `restore`, do not traverse/load excluded directories + +https://github.com/restic/restic/pull/1044 diff --git a/changelog/0.7.2/pull-1061 b/changelog/0.7.2/pull-1061 new file mode 100644 index 000000000..3ec247c67 --- /dev/null +++ b/changelog/0.7.2/pull-1061 @@ -0,0 +1,3 @@ +Enhancement: Add Dockerfile and official Docker image + +https://github.com/restic/restic/pull/1061 diff --git a/changelog/0.7.2/pull-1126 b/changelog/0.7.2/pull-1126 new file mode 100644 index 000000000..fe6f83e4f --- /dev/null +++ b/changelog/0.7.2/pull-1126 @@ -0,0 +1,7 @@ +Enhancement: Use the standard Go git repository layout, use `dep` for vendoring + +The git repository layout was changed to resemble the layout typically used in +Go projects, we're not using `gb` for building restic any more and vendoring +the dependencies is now taken care of by `dep`. + +https://github.com/restic/restic/pull/1126 diff --git a/changelog/0.7.2/pull-1134 b/changelog/0.7.2/pull-1134 new file mode 100644 index 000000000..c1cd9c5bd --- /dev/null +++ b/changelog/0.7.2/pull-1134 @@ -0,0 +1,5 @@ +Enhancement: Add support for storing backups on Google Cloud Storage + +https://github.com/restic/restic/pull/1134 +https://github.com/restic/restic/pull/1052 +https://github.com/restic/restic/issues/211 diff --git a/changelog/0.7.2/pull-1144 b/changelog/0.7.2/pull-1144 new file mode 100644 index 000000000..3588739e1 --- /dev/null +++ b/changelog/0.7.2/pull-1144 @@ -0,0 +1,3 @@ +Enhancement: Properly report errors when reading files with exclude patterns. + +https://github.com/restic/restic/pull/1144 diff --git a/changelog/0.7.2/pull-1149 b/changelog/0.7.2/pull-1149 new file mode 100644 index 000000000..b271a6066 --- /dev/null +++ b/changelog/0.7.2/pull-1149 @@ -0,0 +1,8 @@ +Enhancement: Add support for storing backups on Microsoft Azure Blob Storage + +The library we're using to access the service requires Go 1.8, so restic now +needs at least Go 1.8. + +https://github.com/restic/restic/pull/1149 +https://github.com/restic/restic/pull/1059 +https://github.com/restic/restic/issues/609 diff --git a/changelog/0.7.2/pull-1164 b/changelog/0.7.2/pull-1164 new file mode 100644 index 000000000..95a06b0a8 --- /dev/null +++ b/changelog/0.7.2/pull-1164 @@ -0,0 +1,3 @@ +Bugfix: Make the `key remove` command behave as documented + +https://github.com/restic/restic/pull/1164 diff --git a/changelog/0.7.2/pull-1191 b/changelog/0.7.2/pull-1191 new file mode 100644 index 000000000..25bb4d3f5 --- /dev/null +++ b/changelog/0.7.2/pull-1191 @@ -0,0 +1,8 @@ +Bugfix: Make sure to write profiling files on interrupt + +Since a few releases restic had the ability to write profiling files for memory +and CPU usage when `debug` is enabled. It was discovered that when restic is +interrupted (ctrl+c is pressed), the proper shutdown hook is not run. This is +now corrected. + +https://github.com/restic/restic/pull/1191 diff --git a/changelog/0.7.2/pull-1196 b/changelog/0.7.2/pull-1196 new file mode 100644 index 000000000..7a2520529 --- /dev/null +++ b/changelog/0.7.2/pull-1196 @@ -0,0 +1,3 @@ +Enhancement: Add `--group-by` to `forget` command for flexible grouping + +https://github.com/restic/restic/pull/1196 diff --git a/changelog/0.7.2/pull-1203 b/changelog/0.7.2/pull-1203 new file mode 100644 index 000000000..44d15a97a --- /dev/null +++ b/changelog/0.7.2/pull-1203 @@ -0,0 +1,5 @@ +Enhancement: Print stats on all BSD systems when SIGINFO (ctrl+t) is received + +https://github.com/restic/restic/pull/1203 +https://github.com/restic/restic/pull/1082#issuecomment-326279920 + diff --git a/changelog/0.7.2/pull-1205 b/changelog/0.7.2/pull-1205 new file mode 100644 index 000000000..be80c8217 --- /dev/null +++ b/changelog/0.7.2/pull-1205 @@ -0,0 +1,3 @@ +Enhancement: Allow specifying time/date for a backup with `--time` + +https://github.com/restic/restic/pull/1205 diff --git a/changelog/0.7.3/issue-1246 b/changelog/0.7.3/issue-1246 new file mode 100644 index 000000000..550d71089 --- /dev/null +++ b/changelog/0.7.3/issue-1246 @@ -0,0 +1,9 @@ +Bugfix: List all files stored in Google Cloud Storage + +For large backups stored in Google Cloud Storage, the `prune` command fails +because listing only returns the first 1000 files. This has been corrected, no +data is lost in the process. In addition, a plausibility check was added to +`prune`. + +https://github.com/restic/restic/issues/1246 +https://github.com/restic/restic/pull/1247 diff --git a/changelog/0.8.0/issue-1102 b/changelog/0.8.0/issue-1102 new file mode 100644 index 000000000..6c7f6ed57 --- /dev/null +++ b/changelog/0.8.0/issue-1102 @@ -0,0 +1,9 @@ +Enhancement: Add subdirectory `ids` to fuse mount + +The fuse mount now has an `ids` subdirectory which contains the snapshots below +their (short) IDs. + +https://github.com/restic/restic/issues/1102 +https://github.com/restic/restic/pull/1299 +https://github.com/restic/restic/pull/1320 + diff --git a/changelog/0.8.0/issue-1114 b/changelog/0.8.0/issue-1114 new file mode 100644 index 000000000..8722a112c --- /dev/null +++ b/changelog/0.8.0/issue-1114 @@ -0,0 +1,10 @@ +Enhancement: Add `--cacert` to specify TLS certificates to check against + +We've added the `--cacert` option which can be used to pass one (or more) CA +certificates to restic. These are used in addition to the system CA +certificates to verify HTTPS certificates (e.g. for the REST backend). + +https://github.com/restic/restic/issues/1114 +https://github.com/restic/restic/pull/1276 + + diff --git a/changelog/0.8.0/issue-1216 b/changelog/0.8.0/issue-1216 new file mode 100644 index 000000000..44fce448c --- /dev/null +++ b/changelog/0.8.0/issue-1216 @@ -0,0 +1,9 @@ +Enhancement: Add upload/download limiting + +We've added support for rate limiting through `--limit-upload` and +`--limit-download` flags. + +https://github.com/restic/restic/issues/1216 +https://github.com/restic/restic/pull/1336 +https://github.com/restic/restic/pull/1358 + diff --git a/changelog/0.8.0/issue-1256 b/changelog/0.8.0/issue-1256 new file mode 100644 index 000000000..e42dffc29 --- /dev/null +++ b/changelog/0.8.0/issue-1256 @@ -0,0 +1,7 @@ +Bugfix: Re-enable workaround for S3 backend + +We've re-enabled a workaround for `minio-go` (the library we're using to +access s3 backends), this reduces memory usage. + +https://github.com/restic/restic/issues/1256 +https://github.com/restic/restic/pull/1267 diff --git a/changelog/0.8.0/issue-1271 b/changelog/0.8.0/issue-1271 new file mode 100644 index 000000000..f818b4202 --- /dev/null +++ b/changelog/0.8.0/issue-1271 @@ -0,0 +1,6 @@ +Enhancement: Cache results for excludes for `backup` + +The `backup` command now caches the result of excludes for a directory. + +https://github.com/restic/restic/issues/1271 +https://github.com/restic/restic/pull/1326 diff --git a/changelog/0.8.0/issue-1274 b/changelog/0.8.0/issue-1274 new file mode 100644 index 000000000..97f05e1dd --- /dev/null +++ b/changelog/0.8.0/issue-1274 @@ -0,0 +1,9 @@ +Enhancement: Add `generate` command, replaces `manpage` and `autocomplete` + +The `generate` command has been added, which replaces the now removed +commands `manpage` and `autocomplete`. This release of restic contains the +most recent manpages in `doc/man` and the auto-completion files for bash and +zsh in `doc/bash-completion.sh` and `doc/zsh-completion.zsh` + +https://github.com/restic/restic/issues/1274 +https://github.com/restic/restic/pull/1282 diff --git a/changelog/0.8.0/issue-1291 b/changelog/0.8.0/issue-1291 new file mode 100644 index 000000000..04eff4e8c --- /dev/null +++ b/changelog/0.8.0/issue-1291 @@ -0,0 +1,8 @@ +Bugfix: Reuse backend TCP connections to BackBlaze B2 + +A bug was discovered in the library we're using to access Backblaze, it now +reuses already established TCP connections which should be a lot faster and +not cause network failures any more. + +https://github.com/restic/restic/issues/1291 +https://github.com/restic/restic/pull/1301 diff --git a/changelog/0.8.0/issue-1367 b/changelog/0.8.0/issue-1367 new file mode 100644 index 000000000..5b1c3f211 --- /dev/null +++ b/changelog/0.8.0/issue-1367 @@ -0,0 +1,7 @@ +Enhancement: Allow comments in files read from via `--file-from` + +When the list of files/dirs to be saved is read from a file with +`--files-from`, comment lines (starting with `#`) are now ignored. + +https://github.com/restic/restic/issues/1367 +https://github.com/restic/restic/pull/1368 diff --git a/changelog/0.8.0/issue-1445 b/changelog/0.8.0/issue-1445 new file mode 100644 index 000000000..7027e5cb6 --- /dev/null +++ b/changelog/0.8.0/issue-1445 @@ -0,0 +1,18 @@ +Security: Prevent writing outside the target directory during restore + +A vulnerability was found in the restic restorer, which allowed attackers in +special circumstances to restore files to a location outside of the target +directory. Due to the circumstances we estimate this to be a low-risk +vulnerability, but urge all users to upgrade to the latest version of restic. + +Exploiting the vulnerability requires a Linux/Unix system which saves backups +via restic and a Windows systems which restores files from the repo. In +addition, the attackers need to be able to create create files with arbitrary +names which are then saved to the restic repo. For example, by creating a file +named "..\test.txt" (which is a perfectly legal filename on Linux) and +restoring a snapshot containing this file on Windows, it would be written to +the parent of the target directory. + +We'd like to thank Tyler Spivey for reporting this responsibly! + +https://github.com/restic/restic/pull/1445 diff --git a/changelog/0.8.0/issue-448 b/changelog/0.8.0/issue-448 new file mode 100644 index 000000000..535d5dd1e --- /dev/null +++ b/changelog/0.8.0/issue-448 @@ -0,0 +1,9 @@ +Enhancement: sftp backend prompts for password + +The sftp backend now prompts for the password if a password is necessary for +login. + +https://github.com/restic/restic/issues/448 +https://github.com/restic/restic/pull/1270 + + diff --git a/changelog/0.8.0/issue-510 b/changelog/0.8.0/issue-510 new file mode 100644 index 000000000..702601e99 --- /dev/null +++ b/changelog/0.8.0/issue-510 @@ -0,0 +1,7 @@ +Enhancement: Add `dump` command + +We've added the `dump` command which prints a file from a snapshot to +stdout. This can e.g. be used to restore files read with `backup --stdin`. + +https://github.com/restic/restic/issues/510 +https://github.com/restic/restic/pull/1346 diff --git a/changelog/0.8.0/pull-1040 b/changelog/0.8.0/pull-1040 new file mode 100644 index 000000000..b39ee2fee --- /dev/null +++ b/changelog/0.8.0/pull-1040 @@ -0,0 +1,23 @@ +Enhancement: Add local metadata cache + +We've added a local cache for metadata so that restic doesn't need to load +all metadata (snapshots, indexes, ...) from the repo each time it starts. By +default the cache is active, but there's a new global option `--no-cache` +that can be used to disable the cache. By deafult, the cache a standard +cache folder for the OS, which can be overridden with `--cache-dir`. The +cache will automatically populate, indexes and snapshots are saved as they +are loaded. Cache directories for repos that haven't been used recently can +automatically be removed by restic with the `--cleanup-cache` option. + +A related change was to by default create pack files in the repo that contain +either data or metadata, not both mixed together. This allows easy caching of +only the metadata files. The next run of `restic prune` will untangle mixed +files automatically. + +https://github.com/restic/restic/pull/1040 +https://github.com/restic/restic/issues/29 +https://github.com/restic/restic/issues/738 +https://github.com/restic/restic/issues/282 +https://github.com/restic/restic/pull/1287 +https://github.com/restic/restic/pull/1436 +https://github.com/restic/restic/pull/1265 diff --git a/changelog/0.8.0/pull-1249 b/changelog/0.8.0/pull-1249 new file mode 100644 index 000000000..48db604b4 --- /dev/null +++ b/changelog/0.8.0/pull-1249 @@ -0,0 +1,6 @@ +Enhancement: Add `latest` symlink in fuse mount + +The directory structure in the fuse mount now exposes a symlink `latest` +which points to the latest snapshot in that particular directory. + +https://github.com/restic/restic/pull/1249 diff --git a/changelog/0.8.0/pull-1269 b/changelog/0.8.0/pull-1269 new file mode 100644 index 000000000..fd36334bc --- /dev/null +++ b/changelog/0.8.0/pull-1269 @@ -0,0 +1,6 @@ +Enhancement: Add `--compact` to `forget` command + +The option `--compact` was added to the `forget` command to provide the same +compact view as the `snapshots` command. + +https://github.com/restic/restic/pull/1269 diff --git a/changelog/0.8.0/pull-1281 b/changelog/0.8.0/pull-1281 new file mode 100644 index 000000000..1f5a8ab06 --- /dev/null +++ b/changelog/0.8.0/pull-1281 @@ -0,0 +1,7 @@ +Enhancement: Google Cloud Storage backend needs less permissions + +The Google Cloud Storage backend no longer requires the service account to +have the `storage.buckets.get` permission ("Storage Admin" role) in `restic +init` if the bucket already exists. + +https://github.com/restic/restic/pull/1281 diff --git a/changelog/0.8.0/pull-1317 b/changelog/0.8.0/pull-1317 new file mode 100644 index 000000000..e3249c9ca --- /dev/null +++ b/changelog/0.8.0/pull-1317 @@ -0,0 +1,7 @@ +Bugfix: Run prune when `forget --prune` is called with just snapshot IDs + +A bug in the `forget` command caused `prune` not to be run when `--prune` was +specified without a policy, e.g. when only snapshot IDs that should be +forgotten are listed manually. + +https://github.com/restic/restic/pull/1317 diff --git a/changelog/0.8.0/pull-1319 b/changelog/0.8.0/pull-1319 new file mode 100644 index 000000000..d74a3f947 --- /dev/null +++ b/changelog/0.8.0/pull-1319 @@ -0,0 +1,8 @@ +Enhancement: Make `check` print `no errors found` explicitly + +The `check` command now explicetly prints `No errors were found` when no errors +could be found. + +https://github.com/restic/restic/pull/1319 +https://github.com/restic/restic/issues/1303 + diff --git a/changelog/0.8.0/pull-1353 b/changelog/0.8.0/pull-1353 new file mode 100644 index 000000000..ac3423329 --- /dev/null +++ b/changelog/0.8.0/pull-1353 @@ -0,0 +1,3 @@ +Enhancement: Retry failed backend requests + +https://github.com/restic/restic/pull/1353 diff --git a/changelog/0.8.0/pull-1437 b/changelog/0.8.0/pull-1437 new file mode 100644 index 000000000..906504cdc --- /dev/null +++ b/changelog/0.8.0/pull-1437 @@ -0,0 +1,10 @@ +Bugfix: Remove implicit path `/restic` for the s3 backend + +The s3 backend used the subdir `restic` within a bucket if no explicit path +after the bucket name was specified. Since this version, restic does not use +this default path any more. If you created a repo on s3 in a bucket without +specifying a path within the bucket, you need to add `/restic` at the end of +the repository specification to access your repo: `s3:s3.amazonaws.com/bucket/restic` + +https://github.com/restic/restic/pull/1437 +https://github.com/restic/restic/issues/1292 diff --git a/changelog/0.8.1/issue-1457 b/changelog/0.8.1/issue-1457 new file mode 100644 index 000000000..90d6ab86b --- /dev/null +++ b/changelog/0.8.1/issue-1457 @@ -0,0 +1,4 @@ +Bugfix: Improve s3 backend with DigitalOcean Spaces + +https://github.com/restic/restic/pull/1459 +https://github.com/restic/restic/issues/1457 diff --git a/changelog/0.8.1/pull-1436 b/changelog/0.8.1/pull-1436 new file mode 100644 index 000000000..4098575bd --- /dev/null +++ b/changelog/0.8.1/pull-1436 @@ -0,0 +1,9 @@ +Enhancement: Add code to detect old cache directories + +We've added code to detect old cache directories of repositories that +haven't been used in a long time, restic now prints a note when it detects +that such dirs exist. Also, the option `--cleanup-cache` was added to +automatically remove such directories. That's not a problem because the +cache will be rebuild once a repo is accessed again. + +https://github.com/restic/restic/pull/1436 diff --git a/changelog/0.8.1/pull-1439 b/changelog/0.8.1/pull-1439 new file mode 100644 index 000000000..50c23a5ca --- /dev/null +++ b/changelog/0.8.1/pull-1439 @@ -0,0 +1,6 @@ +Enhancement: Improve cancellation logic + +The cancellation logic was improved, restic can now shut down cleanly when +requested to do so (e.g. via ctrl+c). + +https://github.com/restic/restic/pull/1439 diff --git a/changelog/0.8.1/pull-1452 b/changelog/0.8.1/pull-1452 new file mode 100644 index 000000000..a3ee2eff6 --- /dev/null +++ b/changelog/0.8.1/pull-1452 @@ -0,0 +1,9 @@ +Change: Do not save atime by default + +By default, the access time for files and dirs is not saved any more. It is +not possible to reliably disable updating the access time during a backup, +so for the next backup the access time is different again. This means a lot +of metadata is saved. If you want to save the access time anyway, pass +`--with-atime` to the `backup` command. + +https://github.com/restic/restic/pull/1452 diff --git a/changelog/0.8.1/pull-1454 b/changelog/0.8.1/pull-1454 new file mode 100644 index 000000000..f5f99614f --- /dev/null +++ b/changelog/0.8.1/pull-1454 @@ -0,0 +1,6 @@ +Bugfix: Correct cache dir location for Windows and Darwin + +The cache directory on Windows and Darwin was not correct, instead the +directory `.cache` was used. + +https://github.com/restic/restic/pull/1454 diff --git a/changelog/0.8.1/pull-1459 b/changelog/0.8.1/pull-1459 new file mode 100644 index 000000000..ea9e55c70 --- /dev/null +++ b/changelog/0.8.1/pull-1459 @@ -0,0 +1,9 @@ +Bugfix: Disable handling SIGPIPE + +We've disabled handling SIGPIPE again. Turns out, writing to broken TCP +connections also raised SIGPIPE, so restic exits on the first write to a +broken connection. Instead, restic should retry the request. + +https://github.com/restic/restic/pull/1459 +https://github.com/restic/restic/issues/1457 +https://github.com/restic/restic/issues/1466 diff --git a/changelog/0.8.1/pull-1462 b/changelog/0.8.1/pull-1462 new file mode 100644 index 000000000..9c83941d4 --- /dev/null +++ b/changelog/0.8.1/pull-1462 @@ -0,0 +1,8 @@ +Enhancement: Add the `diff` command + +The command `diff` was added, it allows comparing two snapshots and listing +all differences. + +https://github.com/restic/restic/issues/11 +https://github.com/restic/restic/issues/1460 +https://github.com/restic/restic/pull/1462 diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl new file mode 100644 index 000000000..343cad6ba --- /dev/null +++ b/changelog/CHANGELOG.tmpl @@ -0,0 +1,32 @@ +{{- range $changes := . }}{{ with $changes -}} +Changelog for restic {{ .Version }} ({{ .Date }}) +======================================= + +The following sections list the changes in restic {{ .Version }} relevant to +restic users. The changes are ordered by importance. + +Summary +------- +{{ range $entry := .Entries }}{{ with $entry }} + * {{ .TypeShort }} #{{ .PrimaryID }}: {{ .Title }} +{{- end }}{{ end }} + +Details +------- +{{ range $entry := .Entries }}{{ with $entry }} + * {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} +{{ range $par := .Paragraphs }} + {{ wrap $par 80 3 }} +{{ end -}} +{{ range $id := .Issues }} + https://github.com/restic/restic/issues/{{ $id -}} +{{ end -}} +{{ range $id := .PRs }} + https://github.com/restic/restic/pull/{{ $id -}} +{{ end -}} +{{ range $url := .OtherURLs }} + {{ $url -}} +{{ end }} +{{ end }}{{ end }} + +{{ end }}{{ end -}} diff --git a/changelog/changelog-entry.tmpl b/changelog/changelog-entry.tmpl new file mode 100644 index 000000000..ec5952950 --- /dev/null +++ b/changelog/changelog-entry.tmpl @@ -0,0 +1,12 @@ +Bugfix: Fix behavior for foobar (in present tense) + +We've fixed the behavior for foobar, a long-standing annoyance for restic +users. + +The text in the paragraphs is written in past tense. The last section is a list +of issue URLs, PR URLs and other URLs. The first issue ID (or the first PR ID, +in case there aren't any issue links) is used as the primary ID. + +https://github.com/restic/restic/issues/1234 +https://github.com/restic/restic/pull/55555 +https://forum.restic/.net/foo/bar/baz diff --git a/changelog/changelog-github.tmpl b/changelog/changelog-github.tmpl new file mode 100644 index 000000000..2a1775f07 --- /dev/null +++ b/changelog/changelog-github.tmpl @@ -0,0 +1,32 @@ +{{- range $changes := . }}{{ with $changes -}} +Changelog for restic {{ .Version }} ({{ .Date }}) +======================================= + +The following sections list the changes in restic {{ .Version }} relevant to +restic users. The changes are ordered by importance. + +Summary +------- +{{ range $entry := .Entries }}{{ with $entry }} + * {{ .TypeShort }} #{{ .PrimaryID }}: {{ .Title }} +{{- end }}{{ end }} + +Details +------- +{{ range $entry := .Entries }}{{ with $entry }} + * {{ .Type }} #{{ .PrimaryID }}: {{ .Title }} +{{ range $par := .Paragraphs }} + {{ $par }} +{{ end }} + {{ range $id := .Issues -}} +[{{ $id }}](https://github.com/restic/restic/issues/{{ $id -}}) +{{- end -}} +{{ range $id := .PRs -}} +{{ ` ` }}[{{ $id }}](https://github.com/restic/restic/pull/{{ $id -}}) +{{- end -}} +{{ ` ` }}{{ range $url := .OtherURLs -}} +{{ $url -}} +{{- end }} +{{ end }}{{ end }} + +{{ end }}{{ end -}} diff --git a/changelog/releases b/changelog/releases new file mode 100644 index 000000000..04c0914f7 --- /dev/null +++ b/changelog/releases @@ -0,0 +1,13 @@ +# This file lists all versions for the changelog. Each line consists of the +# version string, followed by an optional release date. +# +# The resulting changelog generated by `calens` will list all versions in +# exactly this order. +0.8.1 +0.8.0 2017-11-26 +0.7.3 2017-09-20 +0.7.2 2017-09-13 +0.7.1 2017-07-22 +0.7.0 2017-07-01 +0.6.1 2017-06-01 +0.6.0 2017-05-29