restic/CHANGELOG.md

52 KiB

Changelog for restic 0.9.1 (2018-06-10)

The following sections list the changes in restic 0.9.1 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1801: Add limiting bandwidth to the rclone backend
  • Fix #1822: Allow uploading large files to MS Azure
  • Fix #1825: Correct find to not skip snapshots
  • Fix #1833: Fix caching files on error
  • Fix #1834: Resolve deadlock

Details

  • Bugfix #1801: Add limiting bandwidth to the rclone backend

    The rclone backend did not respect --limit-upload or --limit-download. Oftentimes it's not necessary to use this, as the limiting in rclone itself should be used because it gives much better results, but in case a remote instance of rclone is used (e.g. called via ssh), it is still relevant to limit the bandwidth from restic to rclone.

    https://github.com/restic/restic/issues/1801

  • Bugfix #1822: Allow uploading large files to MS Azure

    Sometimes, restic creates files to be uploaded to the repository which are quite large, e.g. when saving directories with many entries or very large files. The MS Azure API does not allow uploading files larger that 256MiB directly, rather restic needs to upload them in blocks of 100MiB. This is now implemented.

    https://github.com/restic/restic/issues/1822

  • Bugfix #1825: Correct find to not skip snapshots

    Under certain circumstances, the find command was found to skip snapshots containing directories with files to look for when the directories haven't been modified at all, and were already printed as part of a different snapshot. This is now corrected.

    In addition, we've switched to our own matching/pattern implementation, so now things like restic find "/home/user/foo/**/main.go" are possible.

    https://github.com/restic/restic/issues/1825 https://github.com/restic/restic/issues/1823

  • Bugfix #1833: Fix caching files on error

    During check it may happen that different threads access the same file in the backend, which is then downloaded into the cache only once. When that fails, only the thread which is responsible for downloading the file signals the correct error. The other threads just assume that the file has been downloaded successfully and then get an error when they try to access the cached file.

    https://github.com/restic/restic/issues/1833

  • Bugfix #1834: Resolve deadlock

    When the "scanning" process restic runs to find out how much data there is does not finish before the backup itself is done, restic stops doing anything. This is resolved now.

    https://github.com/restic/restic/issues/1834 https://github.com/restic/restic/pull/1835

Changelog for restic 0.9.0 (2018-05-21)

The following sections list the changes in restic 0.9.0 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1608: Respect time stamp for new backup when reading from stdin
  • Fix #1652: Ignore/remove invalid lock files
  • Fix #1730: Ignore sockets for restore
  • Fix #1684: Fix backend tests for rest-server
  • Fix #1745: Correctly parse the argument to --tls-client-cert
  • Enh #1433: Support UTF-16 encoding and process Byte Order Mark
  • Enh #1561: Allow using rclone to access other services
  • Enh #1665: Improve cache handling for restic check
  • Enh #1721: Add cache command to list cache dirs
  • Enh #1758: Allow saving OneDrive folders in Windows
  • Enh #549: Rework archiver code
  • Enh #1552: Use Google Application Default credentials
  • Enh #1477: Accept AWS_SESSION_TOKEN for the s3 backend
  • Enh #1648: Ignore AWS permission denied error when creating a repository
  • Enh #1649: Add illumos/Solaris support
  • Enh #1709: Improve messages restic check prints
  • Enh #827: Add --new-password-file flag for non-interactive password changes
  • Enh #1735: Allow keeping a time range of snaphots
  • Enh #1782: Use default AWS credentials chain for S3 backend

Details

Changelog for restic 0.8.3 (2018-02-26)

The following sections list the changes in restic 0.8.3 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1633: Fixed unexpected 'pack file cannot be listed' error
  • Fix #1641: Ignore files with invalid names in the repo
  • Fix #1638: Handle errors listing files in the backend
  • Enh #1497: Add --read-data-subset flag to check command
  • Enh #1560: Retry all repository file download errors
  • Enh #1623: Don't check for presence of files in the backend before writing
  • Enh #1634: Upgrade B2 client library, reduce HTTP requests

Details

  • Bugfix #1633: Fixed unexpected 'pack file cannot be listed' error

    Due to a regression introduced in 0.8.2, the rebuild-index and prune commands failed to read pack files with size of 587, 588, 589 or 590 bytes.

    https://github.com/restic/restic/issues/1633 https://github.com/restic/restic/pull/1635

  • Bugfix #1641: Ignore files with invalid names in the repo

    The release 0.8.2 introduced a bug: when restic encounters files in the repo which do not have a valid name, it tries to load a file with a name of lots of zeroes instead of ignoring it. This is now resolved, invalid file names are just ignored.

    https://github.com/restic/restic/issues/1641 https://github.com/restic/restic/pull/1643 https://forum.restic.net/t/help-fixing-repo-no-such-file/485/3

  • Bugfix #1638: Handle errors listing files in the backend

    A user reported in the forum that restic completes a backup although a concurrent prune operation was running. A few error messages were printed, but the backup was attempted and completed successfully. No error code was returned.

    This should not happen: The repository is exclusively locked during prune, so when restic backup is run in parallel, it should abort and return an error code instead.

    It was found that the bug was in the code introduced only recently, which retries a List() operation on the backend should that fail. It is now corrected.

    https://github.com/restic/restic/pull/1638 https://forum.restic.net/t/restic-backup-returns-0-exit-code-when-already-locked/484

  • Enhancement #1497: Add --read-data-subset flag to check command

    This change introduces ability to check integrity of a subset of repository data packs. This can be used to spread integrity check of larger repositories over a period of time.

    https://github.com/restic/restic/issues/1497 https://github.com/restic/restic/pull/1556

  • Enhancement #1560: Retry all repository file download errors

    Restic will now retry failed downloads, similar to other operations.

    https://github.com/restic/restic/pull/1560

  • Enhancement #1623: Don't check for presence of files in the backend before writing

    Before, all backend implementations were required to return an error if the file that is to be written already exists in the backend. For most backends, that means making a request (e.g. via HTTP) and returning an error when the file already exists.

    This is not accurate, the file could have been created between the HTTP request testing for it, and when writing starts, so we've relaxed this requeriment, which saves one additional HTTP request per newly added file.

    https://github.com/restic/restic/pull/1623

  • Enhancement #1634: Upgrade B2 client library, reduce HTTP requests

    We've upgraded the B2 client library restic uses to access BackBlaze B2. This reduces the number of HTTP requests needed to upload a new file from two to one, which should improve throughput to B2.

    https://github.com/restic/restic/pull/1634

Changelog for restic 0.8.2 (2018-02-17)

The following sections list the changes in restic 0.8.2 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1506: Limit bandwith at the http.RoundTripper for HTTP based backends
  • Fix #1512: Restore directory permissions as the last step
  • Fix #1528: Correctly create missing subdirs in data/
  • Fix #1590: Strip spaces for lines read via --files-from
  • Fix #1589: Complete intermediate index upload
  • Fix #1594: Google Cloud Storage: Use generic HTTP transport
  • Fix #1595: Backup: Remove bandwidth display
  • Enh #1522: Add support for TLS client certificate authentication
  • Enh #1541: Reduce number of remote requests during repository check
  • Enh #1567: Reduce number of backend requests for rebuild-index and prune
  • Enh #1507: Only reload snapshots once per minute for fuse mount
  • Enh #1538: Reduce memory allocations for querying the index
  • Enh #1549: Speed up querying across indices and scanning existing files
  • Enh #1554: Fuse/mount: Correctly handle EOF, add template option
  • Enh #1564: Don't terminate ssh on SIGINT
  • Enh #1579: Retry Backend.List() in case of errors
  • Enh #1584: Limit index file size

Details

Changelog for restic 0.8.1 (2017-12-27)

The following sections list the changes in restic 0.8.1 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1457: Improve s3 backend with DigitalOcean Spaces
  • Fix #1454: Correct cache dir location for Windows and Darwin
  • Fix #1459: Disable handling SIGPIPE
  • Chg #1452: Do not save atime by default
  • Enh #1436: Add code to detect old cache directories
  • Enh #1439: Improve cancellation logic
  • Enh #11: Add the diff command

Details

Changelog for restic 0.8.0 (2017-11-26)

The following sections list the changes in restic 0.8.0 relevant to restic users. The changes are ordered by importance.

Summary

  • Sec #1445: Prevent writing outside the target directory during restore
  • Fix #1256: Re-enable workaround for S3 backend
  • Fix #1291: Reuse backend TCP connections to BackBlaze B2
  • Fix #1317: Run prune when forget --prune is called with just snapshot IDs
  • Fix #1437: Remove implicit path /restic for the s3 backend
  • Enh #1102: Add subdirectory ids to fuse mount
  • Enh #1114: Add --cacert to specify TLS certificates to check against
  • Enh #1216: Add upload/download limiting
  • Enh #1271: Cache results for excludes for backup
  • Enh #1274: Add generate command, replaces manpage and autocomplete
  • Enh #1367: Allow comments in files read from via --file-from
  • Enh #448: Sftp backend prompts for password
  • Enh #510: Add dump command
  • Enh #1040: Add local metadata cache
  • Enh #1249: Add latest symlink in fuse mount
  • Enh #1269: Add --compact to forget command
  • Enh #1281: Google Cloud Storage backend needs less permissions
  • Enh #1319: Make check print no errors found explicitly
  • Enh #1353: Retry failed backend requests

Details

Changelog for restic 0.7.3 (2017-09-20)

The following sections list the changes in restic 0.7.3 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1246: List all files stored in Google Cloud Storage

Details

Changelog for restic 0.7.2 (2017-09-13)

The following sections list the changes in restic 0.7.2 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1167: Do not create a local repo unless init is used
  • Fix #1164: Make the key remove command behave as documented
  • Fix #1191: Make sure to write profiling files on interrupt
  • Enh #1132: Make key command always prompt for a password
  • Enh #1179: Resolve name conflicts, append a counter
  • Enh #1218: Add --compact to snapshots command
  • Enh #317: Add --exclude-caches and --exclude-if-present
  • Enh #697: Automatically generate man pages for all restic commands
  • Enh #1044: Improve restore, do not traverse/load excluded directories
  • Enh #1061: Add Dockerfile and official Docker image
  • Enh #1126: Use the standard Go git repository layout, use dep for vendoring
  • Enh #1134: Add support for storing backups on Google Cloud Storage
  • Enh #1144: Properly report errors when reading files with exclude patterns
  • Enh #1149: Add support for storing backups on Microsoft Azure Blob Storage
  • Enh #1196: Add --group-by to forget command for flexible grouping
  • Enh #1203: Print stats on all BSD systems when SIGINFO (ctrl+t) is received
  • Enh #1205: Allow specifying time/date for a backup with --time

Details

Changelog for restic 0.7.1 (2017-07-22)

The following sections list the changes in restic 0.7.1 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1115: Fix prune, only include existing files in indexes
  • Enh #1055: Create subdirs below data/ for local/sftp backends
  • Enh #1067: Allow loading credentials for s3 from IAM
  • Enh #1073: Add migrate cmd to migrate from s3legacy to default layout
  • Enh #1081: Clarify semantic for --tasg for the forget command
  • Enh #1080: Ignore chmod() errors on filesystems which do not support it
  • Enh #1082: Print stats on SIGINFO on Darwin and FreeBSD (ctrl+t)

Details

Changelog for restic 0.7.0 (2017-07-01)

The following sections list the changes in restic 0.7.0 relevant to restic users. The changes are ordered by importance.

Summary

  • Fix #1013: Switch back to using the high-level minio-go API for s3
  • Fix #965: Switch to default repo layout for the s3 backend
  • Enh #1021: Detect invalid backend name and print error
  • Enh #1029: Remove invalid pack files when prune is run
  • Enh #512: Add Backblaze B2 backend
  • Enh #636: Add dirs tags and hosts to fuse mount
  • Enh #989: Improve performance of the find command
  • Enh #975: Add new backend for OpenStack Swift
  • Enh #998: Improve performance of the fuse mount

Details

Changelog for restic 0.6.1 (2017-06-01)

The following sections list the changes in restic 0.6.1 relevant to restic users. The changes are ordered by importance.

Summary

  • Enh #985: Allow multiple parallel idle HTTP connections
  • Enh #981: Remove temporary path from binary in build.go
  • Enh #974: Remove regular status reports

Details

  • Enhancement #985: 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

  • Enhancement #981: 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

  • Enhancement #974: 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

Changelog for restic 0.6.0 (2017-05-29)

The following sections list the changes in restic 0.6.0 relevant to restic users. The changes are ordered by importance.

Summary

  • Enh #957: Make forget consistent
  • Enh #966: Unify repository layout for all backends
  • Enh #962: Improve memory and runtime for the s3 backend

Details