restic/internal
Alexander Neumann b5062959c8 backend: Relax requirement for new files
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. In addition, apart from
the `config` file in the repo, all other file names have pseudo-random
names with a very very low probability of a collision. And even if a
file name is written again, the way the restic repo is structured this
just means that the same content is placed there again. Which is not a
problem, just not very efficient.

So, this commit relaxes the requirement to return an error when the file
in the backend already exists, which allows reducing the number of API
requests and thereby the latency for remote backends.
2018-02-17 22:39:18 +01:00
..
archiver archiver: Fix intermediate index upload 2018-01-26 22:01:07 +01:00
backend backend: Relax requirement for new files 2018-02-17 22:39:18 +01:00
cache Close backend files in case of errors 2018-01-25 21:05:57 +01:00
checker Merge pull request #1583 from restic/close-open-backend-files 2018-01-26 21:57:28 +01:00
crypto crypto: Rework Seal/Open to use sliceForAppend 2017-11-01 10:30:40 +01:00
debug debug: Auto-shorten IDs passed as parameters 2018-01-25 20:49:26 +01:00
errors errors: Make Cause() unwrap *url.Error 2018-01-23 23:14:05 +01:00
filter filter: document recursive wildcards 2017-09-04 14:38:48 -07:00
fs fs: Make HasPathPrefix work with relative paths 2018-01-05 17:38:52 +01:00
fuse debug: Remove manual Str() call Log() 2018-01-25 20:49:41 +01:00
hashing Moves files 2017-07-23 14:19:13 +02:00
index Merge pull request #1582 from restic/optimize-debug-log 2018-01-26 21:57:18 +01:00
limiter Improve limiting HTTP based backends 2017-12-29 12:43:49 +01:00
list Optimize Repository.ListPack() 2018-01-23 22:39:51 -05:00
migrations Fix calls to repo/backend.List() everywhere 2018-01-21 21:15:09 +01:00
mock Change List() implementation for all backends 2018-01-21 21:15:09 +01:00
options errors: Add "Fatal" prefix for Fatalf() 2018-01-06 23:27:47 +01:00
pack Optimize pack readHeader() implementation 2018-01-23 22:02:25 -05:00
pipe small cleanup: 2017-10-25 12:03:55 -04:00
repository Merge pull request #1583 from restic/close-open-backend-files 2018-01-26 21:57:28 +01:00
restic Implement RetryBackend.List() 2018-01-29 22:14:12 -05:00
test internal: check error before deferring file Close() 2017-08-13 19:28:13 +02:00
walk debug: Remove manual Str() call Log() 2018-01-25 20:49:41 +01:00
worker Run goimports 2017-07-23 14:21:03 +02:00