move --to: Better behavior when system is completely out of disk space; drop content from disk before writing location log.
I noticed move --to failing when there was no disk space. The file was sent to the remote, but it crashed before it could be dropped locally. This could fix that.
This commit is contained in:
parent
33a76fa530
commit
74e01a2d01
2 changed files with 15 additions and 7 deletions
|
@ -18,6 +18,8 @@ git-annex (6.20160528) UNRELEASED; urgency=medium
|
|||
* remotedaemon: Fixed support for notifications of changes to gcrypt
|
||||
remotes, which was never tested and didn't quite work before.
|
||||
* list: Do not include dead repositories.
|
||||
* move --to: Better behavior when system is completely out of disk space;
|
||||
drop content from disk before writing location log.
|
||||
|
||||
-- Joey Hess <id@joeyh.name> Fri, 27 May 2016 13:12:48 -0400
|
||||
|
||||
|
|
|
@ -113,23 +113,29 @@ toPerform dest move key afile fastcheck isthere =
|
|||
upload (Remote.uuid dest) key afile noRetry noObserver $
|
||||
Remote.storeKey dest key afile
|
||||
if ok
|
||||
then do
|
||||
then finish $
|
||||
Remote.logStatus dest key InfoPresent
|
||||
finish
|
||||
else do
|
||||
when fastcheck $
|
||||
warning "This could have failed because --fast is enabled."
|
||||
stop
|
||||
Right True -> do
|
||||
Right True -> finish $
|
||||
unlessM (expectedPresent dest key) $
|
||||
Remote.logStatus dest key InfoPresent
|
||||
finish
|
||||
where
|
||||
finish
|
||||
finish :: Annex () -> CommandPerform
|
||||
finish setpresentremote
|
||||
| move = lockContentForRemoval key $ \contentlock -> do
|
||||
-- Drop content before updating location logs,
|
||||
-- in case disk space is very low this frees up
|
||||
-- space before writing data to disk.
|
||||
removeAnnex contentlock
|
||||
next $ Command.Drop.cleanupLocal key
|
||||
| otherwise = next $ return True
|
||||
next $ do
|
||||
setpresentremote
|
||||
Command.Drop.cleanupLocal key
|
||||
| otherwise = next $ do
|
||||
setpresentremote
|
||||
return True
|
||||
|
||||
{- Moves (or copies) the content of an annexed file from a remote
|
||||
- to the current repository.
|
||||
|
|
Loading…
Reference in a new issue