git-lfs/tq
Marat Radchenko 1edb976a92 More robust handling of parallel attempts to download the same file
1. git-lfs now only writes to unique temp files created with `ioutil.TempFile`
   that are open with `O_CREATE|O_EXCL`
2. Partially-downloaded file is now atomically borrowed and returned back via `os.Rename`
3. `.part <-> .tmp` and `.tmp -> final` renames are allowed to fail and are handled appropriately

This is a continuation of #3813
Fixes #2825

There are several error codepaths where we borrow .part file but remove it instead of returning back.
I believe that it is OK and in those erroneous cases it is better to restart download from scratch
instead of attempting to use possibly-corrupt .part file.
2019-09-26 22:21:11 +03:00
..
schemas tq,lfsapi/ssh: convert int64 to int 2017-04-05 14:46:45 -06:00
adapterbase.go tq/adapterbase: fix typo enableHrefRerite to enableHrefRewrite 2019-04-04 11:04:00 +09:00
api_test.go lfsapi: extract new lfshttp package 2018-09-11 14:51:29 -07:00
api.go Don't fail if we lack objects the server has 2019-07-15 20:47:04 +00:00
basic_download.go More robust handling of parallel attempts to download the same file 2019-09-26 22:21:11 +03:00
basic_upload.go tq: avoid nil pointer dereference on unexpected failure 2019-02-20 14:47:35 +00:00
custom_test.go lfsapi: extract new lfshttp package 2018-09-11 14:51:29 -07:00
custom.go Provide support for file URLs via a transfer agent 2019-08-02 17:23:47 +00:00
errors_test.go tq/errors: implement MalformedObjectError 2017-03-24 14:36:59 -06:00
errors.go tq/errors: implement MalformedObjectError 2017-03-24 14:36:59 -06:00
manifest_test.go lfsapi: extract new lfshttp package 2018-09-11 14:51:29 -07:00
manifest.go Provide support for file URLs via a transfer agent 2019-08-02 17:23:47 +00:00
meter.go Use proper repo permissions when creating directories 2018-12-13 17:51:02 +00:00
transfer_queue_test.go tq: add fs.Filesystem to tq.Manifest 2017-10-25 12:25:06 -06:00
transfer_queue.go Avoid deadlock when transfer queue fails 2019-09-09 17:06:59 +00:00
transfer_test.go lfsapi: extract new lfshttp package 2018-09-11 14:51:29 -07:00
transfer.go Don't fail if we lack objects the server has 2019-07-15 20:47:04 +00:00
tus_upload.go NON-ISSUE Update deprecated SEEK_SET, SEEK_CUR usage. 2019-07-27 12:48:42 +09:00
verify_test.go tq: use correct access 2018-09-28 14:16:55 -07:00
verify.go tq: ensure we pass the correct Accept header in verify requests 2019-05-22 21:01:54 +00:00