github.com/mckael/restic@v0.8.3/CHANGELOG.md (about) 1 Changelog for restic 0.8.3 (2018-02-26) 2 ======================================= 3 4 The following sections list the changes in restic 0.8.3 relevant to 5 restic users. The changes are ordered by importance. 6 7 Summary 8 ------- 9 10 * Fix #1633: Fixed unexpected 'pack file cannot be listed' error 11 * Fix #1641: Ignore files with invalid names in the repo 12 * Fix #1638: Handle errors listing files in the backend 13 * Enh #1497: Add --read-data-subset flag to check command 14 * Enh #1560: Retry all repository file download errors 15 * Enh #1623: Don't check for presence of files in the backend before writing 16 * Enh #1634: Upgrade B2 client library, reduce HTTP requests 17 18 Details 19 ------- 20 21 * Bugfix #1633: Fixed unexpected 'pack file cannot be listed' error 22 23 Due to a regression introduced in 0.8.2, the `rebuild-index` and `prune` commands failed to 24 read pack files with size of 587, 588, 589 or 590 bytes. 25 26 https://github.com/restic/restic/issues/1633 27 https://github.com/restic/restic/pull/1635 28 29 * Bugfix #1641: Ignore files with invalid names in the repo 30 31 The release 0.8.2 introduced a bug: when restic encounters files in the repo which do not have a 32 valid name, it tries to load a file with a name of lots of zeroes instead of ignoring it. This is now 33 resolved, invalid file names are just ignored. 34 35 https://github.com/restic/restic/issues/1641 36 https://github.com/restic/restic/pull/1643 37 38 * Bugfix #1638: Handle errors listing files in the backend 39 40 A user reported in the forum that restic completes a backup although a concurrent `prune` 41 operation was running. A few error messages were printed, but the backup was attempted and 42 completed successfully. No error code was returned. 43 44 This should not happen: The repository is exclusively locked during `prune`, so when `restic 45 backup` is run in parallel, it should abort and return an error code instead. 46 47 It was found that the bug was in the code introduced only recently, which retries a List() 48 operation on the backend should that fail. It is now corrected. 49 50 https://github.com/restic/restic/pull/1638 51 52 * Enhancement #1497: Add --read-data-subset flag to check command 53 54 This change introduces ability to check integrity of a subset of repository data packs. This 55 can be used to spread integrity check of larger repositories over a period of time. 56 57 https://github.com/restic/restic/issues/1497 58 https://github.com/restic/restic/pull/1556 59 60 * Enhancement #1560: Retry all repository file download errors 61 62 Restic will now retry failed downloads, similar to other operations. 63 64 https://github.com/restic/restic/pull/1560 65 66 * Enhancement #1623: Don't check for presence of files in the backend before writing 67 68 Before, all backend implementations were required to return an error if the file that is to be 69 written already exists in the backend. For most backends, that means making a request (e.g. via 70 HTTP) and returning an error when the file already exists. 71 72 This is not accurate, the file could have been created between the HTTP request testing for it, 73 and when writing starts, so we've relaxed this requeriment, which saves one additional HTTP 74 request per newly added file. 75 76 https://github.com/restic/restic/pull/1623 77 78 * Enhancement #1634: Upgrade B2 client library, reduce HTTP requests 79 80 We've upgraded the B2 client library restic uses to access BackBlaze B2. This reduces the 81 number of HTTP requests needed to upload a new file from two to one, which should improve 82 throughput to B2. 83 84 https://github.com/restic/restic/pull/1634 85 86 87 Changelog for restic 0.8.2 (2018-02-17) 88 ======================================= 89 90 The following sections list the changes in restic 0.8.2 relevant to 91 restic users. The changes are ordered by importance. 92 93 Summary 94 ------- 95 96 * Fix #1506: Limit bandwith at the http.RoundTripper for HTTP based backends 97 * Fix #1512: Restore directory permissions as the last step 98 * Fix #1528: Correctly create missing subdirs in data/ 99 * Fix #1590: Strip spaces for lines read via --files-from 100 * Fix #1589: Complete intermediate index upload 101 * Fix #1594: Google Cloud Storage: Use generic HTTP transport 102 * Fix #1595: Backup: Remove bandwidth display 103 * Enh #1522: Add support for TLS client certificate authentication 104 * Enh #1541: Reduce number of remote requests during repository check 105 * Enh #1567: Reduce number of backend requests for rebuild-index and prune 106 * Enh #1507: Only reload snapshots once per minute for fuse mount 107 * Enh #1538: Reduce memory allocations for querying the index 108 * Enh #1549: Speed up querying across indices and scanning existing files 109 * Enh #1554: Fuse/mount: Correctly handle EOF, add template option 110 * Enh #1564: Don't terminate ssh on SIGINT 111 * Enh #1579: Retry Backend.List() in case of errors 112 * Enh #1584: Limit index file size 113 114 Details 115 ------- 116 117 * Bugfix #1506: Limit bandwith at the http.RoundTripper for HTTP based backends 118 119 https://github.com/restic/restic/issues/1506 120 https://github.com/restic/restic/pull/1511 121 122 * Bugfix #1512: Restore directory permissions as the last step 123 124 This change allows restoring into directories that were not writable during backup. Before, 125 restic created the directory, set the read-only mode and then failed to create files in the 126 directory. This change now restores the directory (with its permissions) as the very last 127 step. 128 129 https://github.com/restic/restic/issues/1512 130 https://github.com/restic/restic/pull/1536 131 132 * Bugfix #1528: Correctly create missing subdirs in data/ 133 134 https://github.com/restic/restic/issues/1528 135 https://github.com/restic/restic/pull/1529 136 137 * Bugfix #1590: Strip spaces for lines read via --files-from 138 139 Leading and trailing spaces in lines read via `--files-from` are now stripped, so it behaves 140 the same as with lines read via `--exclude-file`. 141 142 https://github.com/restic/restic/issues/1590 143 https://github.com/restic/restic/pull/1613 144 145 * Bugfix #1589: Complete intermediate index upload 146 147 After a user posted a comprehensive report of what he observed, we were able to find a bug and 148 correct it: During backup, restic uploads so-called "intermediate" index files. When the 149 backup finishes during a transfer of such an intermediate index, the upload is cancelled, but 150 the backup is finished without an error. This leads to an inconsistent state, where the 151 snapshot references data that is contained in the repo, but is not referenced in any index. 152 153 The situation can be resolved by building a new index with `rebuild-index`, but looks very 154 confusing at first. Since all the data got uploaded to the repo successfully, there was no risk 155 of data loss, just minor inconvenience for our users. 156 157 https://github.com/restic/restic/pull/1589 158 159 * Bugfix #1594: Google Cloud Storage: Use generic HTTP transport 160 161 It was discovered that the Google Cloud Storage backend did not use the generic HTTP transport, 162 so things such as bandwidth limiting with `--limit-upload` did not work. This is resolved now. 163 164 https://github.com/restic/restic/pull/1594 165 166 * Bugfix #1595: Backup: Remove bandwidth display 167 168 This commit removes the bandwidth displayed during backup process. It is misleading and 169 seldomly correct, because it's neither the "read bandwidth" (only for the very first backup) 170 nor the "upload bandwidth". Many users are confused about (and rightly so), c.f. #1581, #1033, 171 #1591 172 173 We'll eventually replace this display with something more relevant when the new archiver code 174 is ready. 175 176 https://github.com/restic/restic/pull/1595 177 178 * Enhancement #1522: Add support for TLS client certificate authentication 179 180 Support has been added for using a TLS client certificate for authentication to HTTP based 181 backend. A file containing the PEM encoded private key and certificate can be set using the 182 `--tls-client-cert` option. 183 184 https://github.com/restic/restic/issues/1522 185 https://github.com/restic/restic/pull/1524 186 187 * Enhancement #1541: Reduce number of remote requests during repository check 188 189 This change eliminates redundant remote repository calls and significantly improves 190 repository check time. 191 192 https://github.com/restic/restic/issues/1541 193 https://github.com/restic/restic/pull/1548 194 195 * Enhancement #1567: Reduce number of backend requests for rebuild-index and prune 196 197 We've found a way to reduce then number of backend requests for the `rebuild-index` and `prune` 198 operations. This significantly speeds up the operations for high-latency backends. 199 200 https://github.com/restic/restic/issues/1567 201 https://github.com/restic/restic/pull/1574 202 https://github.com/restic/restic/pull/1575 203 204 * Enhancement #1507: Only reload snapshots once per minute for fuse mount 205 206 https://github.com/restic/restic/pull/1507 207 208 * Enhancement #1538: Reduce memory allocations for querying the index 209 210 This change reduces the internal memory allocations when the index data structures in memory 211 are queried if a blob (part of a file) already exists in the repo. It should speed up backup a bit, 212 and maybe even reduce RAM usage. 213 214 https://github.com/restic/restic/pull/1538 215 216 * Enhancement #1549: Speed up querying across indices and scanning existing files 217 218 This change increases the whenever a blob (part of a file) is searched for in a restic 219 repository. This will reduce cpu usage some when backing up files already backed up by restic. 220 Cpu usage is further decreased when scanning files. 221 222 https://github.com/restic/restic/pull/1549 223 224 * Enhancement #1554: Fuse/mount: Correctly handle EOF, add template option 225 226 We've added the `--snapshot-template` string, which can be used to specify a template for a 227 snapshot directory. In addition, accessing data after the end of a file via the fuse mount is now 228 handled correctly. 229 230 https://github.com/restic/restic/pull/1554 231 232 * Enhancement #1564: Don't terminate ssh on SIGINT 233 234 We've reworked the code which runs the `ssh` login for the sftp backend so that it can prompt for a 235 password (if needed) but does not exit when the user presses CTRL+C (SIGINT) e.g. during 236 backup. This allows restic to properly shut down when it receives SIGINT and remove the lock 237 file from the repo, afterwards exiting the `ssh` process. 238 239 https://github.com/restic/restic/pull/1564 240 https://github.com/restic/restic/pull/1588 241 242 * Enhancement #1579: Retry Backend.List() in case of errors 243 244 https://github.com/restic/restic/pull/1579 245 246 * Enhancement #1584: Limit index file size 247 248 Before, restic would create a single new index file on `prune` or `rebuild-index`, this may 249 lead to memory problems when this huge index is created and loaded again. We're now limiting the 250 size of the index file, and split newly created index files into several smaller ones. This 251 allows restic to be more memory-efficient. 252 253 https://github.com/restic/restic/issues/1412 254 https://github.com/restic/restic/issues/979 255 https://github.com/restic/restic/issues/526 256 https://github.com/restic/restic/pull/1584 257 258 259 Changelog for restic 0.8.1 (2017-12-27) 260 ======================================= 261 262 The following sections list the changes in restic 0.8.1 relevant to 263 restic users. The changes are ordered by importance. 264 265 Summary 266 ------- 267 268 * Fix #1457: Improve s3 backend with DigitalOcean Spaces 269 * Fix #1454: Correct cache dir location for Windows and Darwin 270 * Fix #1459: Disable handling SIGPIPE 271 * Chg #1452: Do not save atime by default 272 * Enh #1436: Add code to detect old cache directories 273 * Enh #1439: Improve cancellation logic 274 * Enh #11: Add the `diff` command 275 276 Details 277 ------- 278 279 * Bugfix #1457: Improve s3 backend with DigitalOcean Spaces 280 281 https://github.com/restic/restic/issues/1457 282 https://github.com/restic/restic/pull/1459 283 284 * Bugfix #1454: Correct cache dir location for Windows and Darwin 285 286 The cache directory on Windows and Darwin was not correct, instead the directory `.cache` was 287 used. 288 289 https://github.com/restic/restic/pull/1454 290 291 * Bugfix #1459: Disable handling SIGPIPE 292 293 We've disabled handling SIGPIPE again. Turns out, writing to broken TCP connections also 294 raised SIGPIPE, so restic exits on the first write to a broken connection. Instead, restic 295 should retry the request. 296 297 https://github.com/restic/restic/issues/1457 298 https://github.com/restic/restic/issues/1466 299 https://github.com/restic/restic/pull/1459 300 301 * Change #1452: Do not save atime by default 302 303 By default, the access time for files and dirs is not saved any more. It is not possible to 304 reliably disable updating the access time during a backup, so for the next backup the access 305 time is different again. This means a lot of metadata is saved. If you want to save the access time 306 anyway, pass `--with-atime` to the `backup` command. 307 308 https://github.com/restic/restic/pull/1452 309 310 * Enhancement #1436: Add code to detect old cache directories 311 312 We've added code to detect old cache directories of repositories that haven't been used in a 313 long time, restic now prints a note when it detects that such dirs exist. Also, the option 314 `--cleanup-cache` was added to automatically remove such directories. That's not a problem 315 because the cache will be rebuild once a repo is accessed again. 316 317 https://github.com/restic/restic/pull/1436 318 319 * Enhancement #1439: Improve cancellation logic 320 321 The cancellation logic was improved, restic can now shut down cleanly when requested to do so 322 (e.g. via ctrl+c). 323 324 https://github.com/restic/restic/pull/1439 325 326 * Enhancement #11: Add the `diff` command 327 328 The command `diff` was added, it allows comparing two snapshots and listing all differences. 329 330 https://github.com/restic/restic/issues/11 331 https://github.com/restic/restic/issues/1460 332 https://github.com/restic/restic/pull/1462 333 334 335 Changelog for restic 0.8.0 (2017-11-26) 336 ======================================= 337 338 The following sections list the changes in restic 0.8.0 relevant to 339 restic users. The changes are ordered by importance. 340 341 Summary 342 ------- 343 344 * Sec #1445: Prevent writing outside the target directory during restore 345 * Fix #1256: Re-enable workaround for S3 backend 346 * Fix #1291: Reuse backend TCP connections to BackBlaze B2 347 * Fix #1317: Run prune when `forget --prune` is called with just snapshot IDs 348 * Fix #1437: Remove implicit path `/restic` for the s3 backend 349 * Enh #1102: Add subdirectory `ids` to fuse mount 350 * Enh #1114: Add `--cacert` to specify TLS certificates to check against 351 * Enh #1216: Add upload/download limiting 352 * Enh #1271: Cache results for excludes for `backup` 353 * Enh #1274: Add `generate` command, replaces `manpage` and `autocomplete` 354 * Enh #1367: Allow comments in files read from via `--file-from` 355 * Enh #448: Sftp backend prompts for password 356 * Enh #510: Add `dump` command 357 * Enh #1040: Add local metadata cache 358 * Enh #1249: Add `latest` symlink in fuse mount 359 * Enh #1269: Add `--compact` to `forget` command 360 * Enh #1281: Google Cloud Storage backend needs less permissions 361 * Enh #1319: Make `check` print `no errors found` explicitly 362 * Enh #1353: Retry failed backend requests 363 364 Details 365 ------- 366 367 * Security #1445: Prevent writing outside the target directory during restore 368 369 A vulnerability was found in the restic restorer, which allowed attackers in special 370 circumstances to restore files to a location outside of the target directory. Due to the 371 circumstances we estimate this to be a low-risk vulnerability, but urge all users to upgrade to 372 the latest version of restic. 373 374 Exploiting the vulnerability requires a Linux/Unix system which saves backups via restic and 375 a Windows systems which restores files from the repo. In addition, the attackers need to be able 376 to create create files with arbitrary names which are then saved to the restic repo. For 377 example, by creating a file named "..\test.txt" (which is a perfectly legal filename on Linux) 378 and restoring a snapshot containing this file on Windows, it would be written to the parent of 379 the target directory. 380 381 We'd like to thank Tyler Spivey for reporting this responsibly! 382 383 https://github.com/restic/restic/pull/1445 384 385 * Bugfix #1256: Re-enable workaround for S3 backend 386 387 We've re-enabled a workaround for `minio-go` (the library we're using to access s3 backends), 388 this reduces memory usage. 389 390 https://github.com/restic/restic/issues/1256 391 https://github.com/restic/restic/pull/1267 392 393 * Bugfix #1291: Reuse backend TCP connections to BackBlaze B2 394 395 A bug was discovered in the library we're using to access Backblaze, it now reuses already 396 established TCP connections which should be a lot faster and not cause network failures any 397 more. 398 399 https://github.com/restic/restic/issues/1291 400 https://github.com/restic/restic/pull/1301 401 402 * Bugfix #1317: Run prune when `forget --prune` is called with just snapshot IDs 403 404 A bug in the `forget` command caused `prune` not to be run when `--prune` was specified without a 405 policy, e.g. when only snapshot IDs that should be forgotten are listed manually. 406 407 https://github.com/restic/restic/pull/1317 408 409 * Bugfix #1437: Remove implicit path `/restic` for the s3 backend 410 411 The s3 backend used the subdir `restic` within a bucket if no explicit path after the bucket name 412 was specified. Since this version, restic does not use this default path any more. If you 413 created a repo on s3 in a bucket without specifying a path within the bucket, you need to add 414 `/restic` at the end of the repository specification to access your repo: 415 `s3:s3.amazonaws.com/bucket/restic` 416 417 https://github.com/restic/restic/issues/1292 418 https://github.com/restic/restic/pull/1437 419 420 * Enhancement #1102: Add subdirectory `ids` to fuse mount 421 422 The fuse mount now has an `ids` subdirectory which contains the snapshots below their (short) 423 IDs. 424 425 https://github.com/restic/restic/issues/1102 426 https://github.com/restic/restic/pull/1299 427 https://github.com/restic/restic/pull/1320 428 429 * Enhancement #1114: Add `--cacert` to specify TLS certificates to check against 430 431 We've added the `--cacert` option which can be used to pass one (or more) CA certificates to 432 restic. These are used in addition to the system CA certificates to verify HTTPS certificates 433 (e.g. for the REST backend). 434 435 https://github.com/restic/restic/issues/1114 436 https://github.com/restic/restic/pull/1276 437 438 * Enhancement #1216: Add upload/download limiting 439 440 We've added support for rate limiting through `--limit-upload` and `--limit-download` 441 flags. 442 443 https://github.com/restic/restic/issues/1216 444 https://github.com/restic/restic/pull/1336 445 https://github.com/restic/restic/pull/1358 446 447 * Enhancement #1271: Cache results for excludes for `backup` 448 449 The `backup` command now caches the result of excludes for a directory. 450 451 https://github.com/restic/restic/issues/1271 452 https://github.com/restic/restic/pull/1326 453 454 * Enhancement #1274: Add `generate` command, replaces `manpage` and `autocomplete` 455 456 The `generate` command has been added, which replaces the now removed commands `manpage` and 457 `autocomplete`. This release of restic contains the most recent manpages in `doc/man` and the 458 auto-completion files for bash and zsh in `doc/bash-completion.sh` and 459 `doc/zsh-completion.zsh` 460 461 https://github.com/restic/restic/issues/1274 462 https://github.com/restic/restic/pull/1282 463 464 * Enhancement #1367: Allow comments in files read from via `--file-from` 465 466 When the list of files/dirs to be saved is read from a file with `--files-from`, comment lines 467 (starting with `#`) are now ignored. 468 469 https://github.com/restic/restic/issues/1367 470 https://github.com/restic/restic/pull/1368 471 472 * Enhancement #448: Sftp backend prompts for password 473 474 The sftp backend now prompts for the password if a password is necessary for login. 475 476 https://github.com/restic/restic/issues/448 477 https://github.com/restic/restic/pull/1270 478 479 * Enhancement #510: Add `dump` command 480 481 We've added the `dump` command which prints a file from a snapshot to stdout. This can e.g. be 482 used to restore files read with `backup --stdin`. 483 484 https://github.com/restic/restic/issues/510 485 https://github.com/restic/restic/pull/1346 486 487 * Enhancement #1040: Add local metadata cache 488 489 We've added a local cache for metadata so that restic doesn't need to load all metadata 490 (snapshots, indexes, ...) from the repo each time it starts. By default the cache is active, but 491 there's a new global option `--no-cache` that can be used to disable the cache. By deafult, the 492 cache a standard cache folder for the OS, which can be overridden with `--cache-dir`. The cache 493 will automatically populate, indexes and snapshots are saved as they are loaded. Cache 494 directories for repos that haven't been used recently can automatically be removed by restic 495 with the `--cleanup-cache` option. 496 497 A related change was to by default create pack files in the repo that contain either data or 498 metadata, not both mixed together. This allows easy caching of only the metadata files. The 499 next run of `restic prune` will untangle mixed files automatically. 500 501 https://github.com/restic/restic/issues/29 502 https://github.com/restic/restic/issues/738 503 https://github.com/restic/restic/issues/282 504 https://github.com/restic/restic/pull/1040 505 https://github.com/restic/restic/pull/1287 506 https://github.com/restic/restic/pull/1436 507 https://github.com/restic/restic/pull/1265 508 509 * Enhancement #1249: Add `latest` symlink in fuse mount 510 511 The directory structure in the fuse mount now exposes a symlink `latest` which points to the 512 latest snapshot in that particular directory. 513 514 https://github.com/restic/restic/pull/1249 515 516 * Enhancement #1269: Add `--compact` to `forget` command 517 518 The option `--compact` was added to the `forget` command to provide the same compact view as the 519 `snapshots` command. 520 521 https://github.com/restic/restic/pull/1269 522 523 * Enhancement #1281: Google Cloud Storage backend needs less permissions 524 525 The Google Cloud Storage backend no longer requires the service account to have the 526 `storage.buckets.get` permission ("Storage Admin" role) in `restic init` if the bucket 527 already exists. 528 529 https://github.com/restic/restic/pull/1281 530 531 * Enhancement #1319: Make `check` print `no errors found` explicitly 532 533 The `check` command now explicetly prints `No errors were found` when no errors could be found. 534 535 https://github.com/restic/restic/issues/1303 536 https://github.com/restic/restic/pull/1319 537 538 * Enhancement #1353: Retry failed backend requests 539 540 https://github.com/restic/restic/pull/1353 541 542 543 Changelog for restic 0.7.3 (2017-09-20) 544 ======================================= 545 546 The following sections list the changes in restic 0.7.3 relevant to 547 restic users. The changes are ordered by importance. 548 549 Summary 550 ------- 551 552 * Fix #1246: List all files stored in Google Cloud Storage 553 554 Details 555 ------- 556 557 * Bugfix #1246: List all files stored in Google Cloud Storage 558 559 For large backups stored in Google Cloud Storage, the `prune` command fails because listing 560 only returns the first 1000 files. This has been corrected, no data is lost in the process. In 561 addition, a plausibility check was added to `prune`. 562 563 https://github.com/restic/restic/issues/1246 564 https://github.com/restic/restic/pull/1247 565 566 567 Changelog for restic 0.7.2 (2017-09-13) 568 ======================================= 569 570 The following sections list the changes in restic 0.7.2 relevant to 571 restic users. The changes are ordered by importance. 572 573 Summary 574 ------- 575 576 * Fix #1167: Do not create a local repo unless `init` is used 577 * Fix #1164: Make the `key remove` command behave as documented 578 * Fix #1191: Make sure to write profiling files on interrupt 579 * Enh #1132: Make `key` command always prompt for a password 580 * Enh #1179: Resolve name conflicts, append a counter 581 * Enh #1218: Add `--compact` to `snapshots` command 582 * Enh #317: Add `--exclude-caches` and `--exclude-if-present` 583 * Enh #697: Automatically generate man pages for all restic commands 584 * Enh #1044: Improve `restore`, do not traverse/load excluded directories 585 * Enh #1061: Add Dockerfile and official Docker image 586 * Enh #1126: Use the standard Go git repository layout, use `dep` for vendoring 587 * Enh #1134: Add support for storing backups on Google Cloud Storage 588 * Enh #1144: Properly report errors when reading files with exclude patterns 589 * Enh #1149: Add support for storing backups on Microsoft Azure Blob Storage 590 * Enh #1196: Add `--group-by` to `forget` command for flexible grouping 591 * Enh #1203: Print stats on all BSD systems when SIGINFO (ctrl+t) is received 592 * Enh #1205: Allow specifying time/date for a backup with `--time` 593 594 Details 595 ------- 596 597 * Bugfix #1167: Do not create a local repo unless `init` is used 598 599 When a restic command other than `init` is used with a local repository and the repository 600 directory does not exist, restic creates the directory structure. That's an error, only the 601 `init` command should create the dir. 602 603 https://github.com/restic/restic/issues/1167 604 https://github.com/restic/restic/pull/1182 605 606 * Bugfix #1164: Make the `key remove` command behave as documented 607 608 https://github.com/restic/restic/pull/1164 609 610 * Bugfix #1191: Make sure to write profiling files on interrupt 611 612 Since a few releases restic had the ability to write profiling files for memory and CPU usage 613 when `debug` is enabled. It was discovered that when restic is interrupted (ctrl+c is 614 pressed), the proper shutdown hook is not run. This is now corrected. 615 616 https://github.com/restic/restic/pull/1191 617 618 * Enhancement #1132: Make `key` command always prompt for a password 619 620 The `key` command now prompts for a password even if the original password to access a repo has 621 been specified via the `RESTIC_PASSWORD` environment variable or a password file. 622 623 https://github.com/restic/restic/issues/1132 624 https://github.com/restic/restic/pull/1133 625 626 * Enhancement #1179: Resolve name conflicts, append a counter 627 628 https://github.com/restic/restic/issues/1179 629 https://github.com/restic/restic/pull/1209 630 631 * Enhancement #1218: Add `--compact` to `snapshots` command 632 633 The option `--compact` was added to the `snapshots` command to get a better overview of the 634 snapshots in a repo. It limits each snapshot to a single line. 635 636 https://github.com/restic/restic/issues/1218 637 https://github.com/restic/restic/pull/1223 638 639 * Enhancement #317: Add `--exclude-caches` and `--exclude-if-present` 640 641 A new option `--exclude-caches` was added that allows excluding cache directories (that are 642 tagged as such). This is a special case of a more generic option `--exclude-if-present` which 643 excludes a directory if a file with a specific name (and contents) is present. 644 645 https://github.com/restic/restic/issues/317 646 https://github.com/restic/restic/pull/1170 647 https://github.com/restic/restic/pull/1224 648 649 * Enhancement #697: Automatically generate man pages for all restic commands 650 651 https://github.com/restic/restic/issues/697 652 https://github.com/restic/restic/pull/1147 653 654 * Enhancement #1044: Improve `restore`, do not traverse/load excluded directories 655 656 https://github.com/restic/restic/pull/1044 657 658 * Enhancement #1061: Add Dockerfile and official Docker image 659 660 https://github.com/restic/restic/pull/1061 661 662 * Enhancement #1126: Use the standard Go git repository layout, use `dep` for vendoring 663 664 The git repository layout was changed to resemble the layout typically used in Go projects, 665 we're not using `gb` for building restic any more and vendoring the dependencies is now taken 666 care of by `dep`. 667 668 https://github.com/restic/restic/pull/1126 669 670 * Enhancement #1134: Add support for storing backups on Google Cloud Storage 671 672 https://github.com/restic/restic/issues/211 673 https://github.com/restic/restic/pull/1134 674 https://github.com/restic/restic/pull/1052 675 676 * Enhancement #1144: Properly report errors when reading files with exclude patterns 677 678 https://github.com/restic/restic/pull/1144 679 680 * Enhancement #1149: Add support for storing backups on Microsoft Azure Blob Storage 681 682 The library we're using to access the service requires Go 1.8, so restic now needs at least Go 683 1.8. 684 685 https://github.com/restic/restic/issues/609 686 https://github.com/restic/restic/pull/1149 687 https://github.com/restic/restic/pull/1059 688 689 * Enhancement #1196: Add `--group-by` to `forget` command for flexible grouping 690 691 https://github.com/restic/restic/pull/1196 692 693 * Enhancement #1203: Print stats on all BSD systems when SIGINFO (ctrl+t) is received 694 695 https://github.com/restic/restic/pull/1203 696 https://github.com/restic/restic/pull/1082 697 698 * Enhancement #1205: Allow specifying time/date for a backup with `--time` 699 700 https://github.com/restic/restic/pull/1205 701 702 703 Changelog for restic 0.7.1 (2017-07-22) 704 ======================================= 705 706 The following sections list the changes in restic 0.7.1 relevant to 707 restic users. The changes are ordered by importance. 708 709 Summary 710 ------- 711 712 * Fix #1115: Fix `prune`, only include existing files in indexes 713 * Enh #1055: Create subdirs below `data/` for local/sftp backends 714 * Enh #1067: Allow loading credentials for s3 from IAM 715 * Enh #1073: Add `migrate` cmd to migrate from `s3legacy` to `default` layout 716 * Enh #1081: Clarify semantic for `--tasg` for the `forget` command 717 * Enh #1080: Ignore chmod() errors on filesystems which do not support it 718 * Enh #1082: Print stats on SIGINFO on Darwin and FreeBSD (ctrl+t) 719 720 Details 721 ------- 722 723 * Bugfix #1115: Fix `prune`, only include existing files in indexes 724 725 A bug was found (and corrected) in the index rebuilding after prune, which led to indexes which 726 include blobs that were not present in the repo any more. There were already checks in place 727 which detected this situation and aborted with an error message. A new run of either `prune` or 728 `rebuild-index` corrected the index files. This is now fixed and a test has been added to detect 729 this. 730 731 https://github.com/restic/restic/pull/1115 732 733 * Enhancement #1055: Create subdirs below `data/` for local/sftp backends 734 735 The local and sftp backends now create the subdirs below `data/` on open/init. This way, restic 736 makes sure that they always exist. This is connected to an issue for the sftp server: 737 738 https://github.com/restic/restic/issues/1055 739 https://github.com/restic/restic/pull/1077 740 https://github.com/restic/restic/pull/1105 741 https://github.com/restic/rest-server/pull/11#issuecomment-309879710 742 743 * Enhancement #1067: Allow loading credentials for s3 from IAM 744 745 When no S3 credentials are specified in the environment variables, restic now tries to load 746 credentials from an IAM instance profile when the s3 backend is used. 747 748 https://github.com/restic/restic/issues/1067 749 https://github.com/restic/restic/pull/1086 750 751 * Enhancement #1073: Add `migrate` cmd to migrate from `s3legacy` to `default` layout 752 753 The `migrate` command for chaning the `s3legacy` layout to the `default` layout for s3 754 backends has been improved: It can now be restarted with `restic migrate --force s3_layout` 755 and automatically retries operations on error. 756 757 https://github.com/restic/restic/issues/1073 758 https://github.com/restic/restic/pull/1075 759 760 * Enhancement #1081: Clarify semantic for `--tasg` for the `forget` command 761 762 https://github.com/restic/restic/issues/1081 763 https://github.com/restic/restic/pull/1090 764 765 * Enhancement #1080: Ignore chmod() errors on filesystems which do not support it 766 767 https://github.com/restic/restic/pull/1080 768 https://github.com/restic/restic/pull/1112 769 770 * Enhancement #1082: Print stats on SIGINFO on Darwin and FreeBSD (ctrl+t) 771 772 https://github.com/restic/restic/pull/1082 773 774 775 Changelog for restic 0.7.0 (2017-07-01) 776 ======================================= 777 778 The following sections list the changes in restic 0.7.0 relevant to 779 restic users. The changes are ordered by importance. 780 781 Summary 782 ------- 783 784 * Fix #1013: Switch back to using the high-level minio-go API for s3 785 * Fix #965: Switch to `default` repo layout for the s3 backend 786 * Enh #1021: Detect invalid backend name and print error 787 * Enh #1029: Remove invalid pack files when `prune` is run 788 * Enh #512: Add Backblaze B2 backend 789 * Enh #636: Add dirs `tags` and `hosts` to fuse mount 790 * Enh #989: Improve performance of the `find` command 791 * Enh #975: Add new backend for OpenStack Swift 792 * Enh #998: Improve performance of the fuse mount 793 794 Details 795 ------- 796 797 * Bugfix #1013: Switch back to using the high-level minio-go API for s3 798 799 For the s3 backend we're back to using the high-level API the s3 client library for uploading 800 data, a few users reported dropped connections (which the library will automatically retry 801 now). 802 803 https://github.com/restic/restic/issues/1013 804 https://github.com/restic/restic/issues/1023 805 https://github.com/restic/restic/pull/1025 806 807 * Bugfix #965: Switch to `default` repo layout for the s3 backend 808 809 The default layout for the s3 backend is now `default` (instead of `s3legacy`). Also, there's a 810 new `migrate` command to convert an existing repo, it can be run like this: `restic migrate 811 s3_layout` 812 813 https://github.com/restic/restic/issues/965 814 https://github.com/restic/restic/pull/1004 815 816 * Enhancement #1021: Detect invalid backend name and print error 817 818 Restic now tries to detect when an invalid/unknown backend is used and returns an error 819 message. 820 821 https://github.com/restic/restic/issues/1021 822 https://github.com/restic/restic/pull/1070 823 824 * Enhancement #1029: Remove invalid pack files when `prune` is run 825 826 The `prune` command has been improved and will now remove invalid pack files, for example files 827 that have not been uploaded completely because a backup was interrupted. 828 829 https://github.com/restic/restic/issues/1029 830 https://github.com/restic/restic/pull/1036 831 832 * Enhancement #512: Add Backblaze B2 backend 833 834 https://github.com/restic/restic/issues/512 835 https://github.com/restic/restic/pull/978 836 837 * Enhancement #636: Add dirs `tags` and `hosts` to fuse mount 838 839 The fuse mount now has two more directories: `tags` contains a subdir for each tag, which in turn 840 contains only the snapshots that have this tag. The subdir `hosts` contains a subdir for each 841 host that has a snapshot, and the subdir contains the snapshots for that host. 842 843 https://github.com/restic/restic/issues/636 844 https://github.com/restic/restic/pull/1050 845 846 * Enhancement #989: Improve performance of the `find` command 847 848 Improved performance for the `find` command: Restic recognizes paths it has already checked 849 for the files in question, so the number of backend requests is reduced a lot. 850 851 https://github.com/restic/restic/issues/989 852 https://github.com/restic/restic/pull/993 853 854 * Enhancement #975: Add new backend for OpenStack Swift 855 856 https://github.com/restic/restic/pull/975 857 https://github.com/restic/restic/pull/648 858 859 * Enhancement #998: Improve performance of the fuse mount 860 861 Listing directories which contain large files now is significantly faster. 862 863 https://github.com/restic/restic/pull/998 864 865 866 Changelog for restic 0.6.1 (2017-06-01) 867 ======================================= 868 869 The following sections list the changes in restic 0.6.1 relevant to 870 restic users. The changes are ordered by importance. 871 872 Summary 873 ------- 874 875 * Enh #985: Allow multiple parallel idle HTTP connections 876 * Enh #981: Remove temporary path from binary in `build.go` 877 * Enh #974: Remove regular status reports 878 879 Details 880 ------- 881 882 * Enhancement #985: Allow multiple parallel idle HTTP connections 883 884 Backends based on HTTP now allow several idle connections in parallel. This is especially 885 important for the REST backend, which (when used with a local server) may create a lot 886 connections and exhaust available ports quickly. 887 888 https://github.com/restic/restic/issues/985 889 https://github.com/restic/restic/pull/986 890 891 * Enhancement #981: Remove temporary path from binary in `build.go` 892 893 The `build.go` now strips the temporary directory used for compilation from the binary. This 894 is the first step in enabling reproducible builds. 895 896 https://github.com/restic/restic/pull/981 897 898 * Enhancement #974: Remove regular status reports 899 900 Regular status report: We've removed the status report that was printed every 10 seconds when 901 restic is run non-interactively. You can still force reporting the current status by sending a 902 `USR1` signal to the process. 903 904 https://github.com/restic/restic/pull/974 905 906 907 Changelog for restic 0.6.0 (2017-05-29) 908 ======================================= 909 910 The following sections list the changes in restic 0.6.0 relevant to 911 restic users. The changes are ordered by importance. 912 913 Summary 914 ------- 915 916 * Enh #957: Make `forget` consistent 917 * Enh #966: Unify repository layout for all backends 918 * Enh #962: Improve memory and runtime for the s3 backend 919 920 Details 921 ------- 922 923 * Enhancement #957: Make `forget` consistent 924 925 The `forget` command was corrected to be more consistent in which snapshots are to be 926 forgotten. It is possible that the new code removes more snapshots than before, so please 927 review what would be deleted by using the `--dry-run` option. 928 929 https://github.com/restic/restic/issues/953 930 https://github.com/restic/restic/pull/957 931 932 * Enhancement #966: Unify repository layout for all backends 933 934 Up to now the s3 backend used a special repository layout. We've decided to unify the repository 935 layout and implemented the default layout also for the s3 backend. For creating a new 936 repository on s3 with the default layout, use `restic -o s3.layout=default init`. For further 937 commands the option is not necessary any more, restic will automatically detect the correct 938 layout to use. A future version will switch to the default layout for new repositories. 939 940 https://github.com/restic/restic/issues/965 941 https://github.com/restic/restic/pull/966 942 943 * Enhancement #962: Improve memory and runtime for the s3 backend 944 945 We've updated the library used for accessing s3, switched to using a lower level API and added 946 caching for some requests. This lead to a decrease in memory usage and a great speedup. In 947 addition, we added benchmark functions for all backends, so we can track improvements over 948 time. The Continuous Integration test service we're using (Travis) now runs the s3 backend 949 tests not only against a Minio server, but also against the Amazon s3 live service, so we should 950 be notified of any regressions much sooner. 951 952 https://github.com/restic/restic/pull/962 953 https://github.com/restic/restic/pull/960 954 https://github.com/restic/restic/pull/946 955 https://github.com/restic/restic/pull/938 956 https://github.com/restic/restic/pull/883 957 958