From 8c6099d73c86f8803f08c47fe224cf8398cfd6c2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 26 Feb 2014 16:52:56 -0400 Subject: Put non-object tmp files in .git/annex/misctmp, leaving .git/annex/tmp for only partially transferred objects. This allows eg, putting .git/annex/tmp on a ram disk, if the disk IO of temp object files is too annoying (and if you don't want to keep partially transferred objects across reboots). .git/annex/misctmp must be on the same filesystem as the git work tree, since files are moved to there in a way that will not work cross-device, as well as symlinked into there. I first wanted to put the tmp objects in .git/annex/objects/tmp, but that would pose transition problems on upgrade when partially transferred objects existed. git annex info does not currently show the size of .git/annex/misctemp, since it should stay small. It would also be ok to make something clean it out, periodically. --- Annex/ReplaceFile.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Annex/ReplaceFile.hs') diff --git a/Annex/ReplaceFile.hs b/Annex/ReplaceFile.hs index dd93b471c..8b15f5ce3 100644 --- a/Annex/ReplaceFile.hs +++ b/Annex/ReplaceFile.hs @@ -24,7 +24,7 @@ import Annex.Exception -} replaceFile :: FilePath -> (FilePath -> Annex ()) -> Annex () replaceFile file a = do - tmpdir <- fromRepo gitAnnexTmpDir + tmpdir <- fromRepo gitAnnexTmpMiscDir void $ createAnnexDirectory tmpdir bracketIO (setup tmpdir) nukeFile $ \tmpfile -> do a tmpfile @@ -36,4 +36,4 @@ replaceFile file a = do return tmpfile fallback tmpfile _ = do createDirectoryIfMissing True $ parentDir file - rename tmpfile file + moveFile tmpfile file -- cgit v1.2.3