summaryrefslogtreecommitdiff
path: root/Annex
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-12-07 12:29:34 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-12-07 12:29:34 -0400
commit6a44b7716aa702a068b301cc8608c0116a5cd90f (patch)
tree8773d46c1bd73117cfd09857dcc28ad74554f9b5 /Annex
parentcf9af38cf75618e2953c5b537d8f7c1fe353aa63 (diff)
parent4542ddaf4e58da6d02d41e6365d68506df8ccd4c (diff)
Merge branch 'master' into smudge
Diffstat (limited to 'Annex')
-rw-r--r--Annex/ReplaceFile.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/Annex/ReplaceFile.hs b/Annex/ReplaceFile.hs
index b090da905..94d2688a1 100644
--- a/Annex/ReplaceFile.hs
+++ b/Annex/ReplaceFile.hs
@@ -27,9 +27,10 @@ replaceFile :: FilePath -> (FilePath -> Annex ()) -> Annex ()
replaceFile file action = do
misctmpdir <- fromRepo gitAnnexTmpMiscDir
void $ createAnnexDirectory misctmpdir
- let basetmp = takeFileName file
+ filemax <- liftIO $ fileNameLengthLimit misctmpdir
+ let basetmp = take (filemax `div` 2) (takeFileName file)
withTmpDirIn misctmpdir basetmp $ \tmpdir -> do
- let tmpfile = tmpdir <> basetmp
+ let tmpfile = tmpdir </> basetmp
action tmpfile
liftIO $ replaceFileFrom tmpfile file