add: Fix rollback when disk is completely full.
Noticed that it was possible for add to move a file to .git/annex/objects and not make the link if the disk was full. This happened because the location log update failed, and so addLink never got a chance to run. Running addLink first fixes it; on error it will unwind by moving the file back to where it was originally.
This commit is contained in:
parent
964f5d080e
commit
0cc1bd7e53
2 changed files with 3 additions and 2 deletions
|
@ -250,12 +250,12 @@ addLink file key mcache = ifM (coreSymlinks <$> Annex.getGitConfig)
|
|||
|
||||
cleanup :: FilePath -> Key -> Maybe InodeCache -> Bool -> CommandCleanup
|
||||
cleanup file key mcache hascontent = do
|
||||
when hascontent $
|
||||
logStatus key InfoPresent
|
||||
ifM (isDirect <&&> pure hascontent)
|
||||
( do
|
||||
l <- inRepo $ gitAnnexLink file key
|
||||
stageSymlink file =<< hashSymlink l
|
||||
, addLink file key mcache
|
||||
)
|
||||
when hascontent $
|
||||
logStatus key InfoPresent
|
||||
return True
|
||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -17,6 +17,7 @@ git-annex (5.20131231) UNRELEASED; urgency=medium
|
|||
ssh refuse to use them, if it allows another user to write to them.
|
||||
* addurl, importfeed: Honor annex.diskreserve as long as the size of the
|
||||
url can be checked.
|
||||
* add: Fix rollback when disk is completely full.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Tue, 31 Dec 2013 13:41:18 -0400
|
||||
|
||||
|
|
Loading…
Reference in a new issue