summaryrefslogtreecommitdiff
path: root/Fields.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-03-04 14:25:18 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-03-04 14:25:22 -0400
commit0a959d31d29ed95ff648fcf4027803d3db41ae57 (patch)
tree36a73782a131205f50948cd2fb05e74c9051b72c /Fields.hs
parent711ef96d67f467c193e637ae5a7d5837c8cf9910 (diff)
fixed the race breaking moving files from archive in direct mode
assistant: Fix bug in direct mode that could occur when a symlink is moved out of an archive directory, and resulted in the file not being set to direct mode when it was transferred. The bug was that the direct mode mapping was not up-to-date when the transferrer finished. So, finding no direct mode place to store the object, it was put into .git/annex in indirect mode. To fix this, just make the watcher update the direct mode mapping to include the new file before it starts the transfer. (Seems we don't need to update it to remove the old file if the link was moved, because the direct mode code will notice it's not present and the mapping gets updated for its removal later.) The reason this was a race, and was probably not seen often is because the committer came along and updated the direct mode mapping as part of adding the moved symlink. But when the file was sufficiently small or the remote sufficiently fast, this could happen after the transfer finished.
Diffstat (limited to 'Fields.hs')
0 files changed, 0 insertions, 0 deletions