diff options
author | Joey Hess <joey@kitenet.net> | 2014-02-26 16:52:56 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-02-26 16:52:56 -0400 |
commit | 8c6099d73c86f8803f08c47fe224cf8398cfd6c2 (patch) | |
tree | 7d23c487f323020f4c56a6957c58efe82e839570 /Locations.hs | |
parent | b03b8e8cd7977d9a059efe8226b30e90f53be3e6 (diff) |
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.
Diffstat (limited to 'Locations.hs')
-rw-r--r-- | Locations.hs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/Locations.hs b/Locations.hs index 8189b8a07..3739f10f5 100644 --- a/Locations.hs +++ b/Locations.hs @@ -23,8 +23,9 @@ module Locations ( annexLocation, gitAnnexDir, gitAnnexObjectDir, - gitAnnexTmpDir, - gitAnnexTmpLocation, + gitAnnexTmpMiscDir, + gitAnnexTmpObjectDir, + gitAnnexTmpObjectLocation, gitAnnexBadDir, gitAnnexBadLocation, gitAnnexUnusedLog, @@ -180,13 +181,17 @@ gitAnnexDir r = addTrailingPathSeparator $ Git.localGitDir r </> annexDir gitAnnexObjectDir :: Git.Repo -> FilePath gitAnnexObjectDir r = addTrailingPathSeparator $ Git.localGitDir r </> objectDir -{- .git/annex/tmp/ is used for temp files -} -gitAnnexTmpDir :: Git.Repo -> FilePath -gitAnnexTmpDir r = addTrailingPathSeparator $ gitAnnexDir r </> "tmp" +{- .git/annex/misctmp/ is used for random temp files -} +gitAnnexTmpMiscDir :: Git.Repo -> FilePath +gitAnnexTmpMiscDir r = addTrailingPathSeparator $ gitAnnexDir r </> "misctmp" + +{- .git/annex/tmp/ is used for temp files for key's contents -} +gitAnnexTmpObjectDir :: Git.Repo -> FilePath +gitAnnexTmpObjectDir r = addTrailingPathSeparator $ gitAnnexDir r </> "tmp" {- The temp file to use for a given key's content. -} -gitAnnexTmpLocation :: Key -> Git.Repo -> FilePath -gitAnnexTmpLocation key r = gitAnnexTmpDir r </> keyFile key +gitAnnexTmpObjectLocation :: Key -> Git.Repo -> FilePath +gitAnnexTmpObjectLocation key r = gitAnnexTmpObjectDir r </> keyFile key {- .git/annex/bad/ is used for bad files found during fsck -} gitAnnexBadDir :: Git.Repo -> FilePath |