From 2c0c99eea6ac82e42b46fc9e9c2541736862fd47 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 6 May 2016 12:49:41 -0400 Subject: Windows: Fix an over-long temp directory name. --- Annex/ReplaceFile.hs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Annex') diff --git a/Annex/ReplaceFile.hs b/Annex/ReplaceFile.hs index 4b1b2b5db..7cb4fbdea 100644 --- a/Annex/ReplaceFile.hs +++ b/Annex/ReplaceFile.hs @@ -5,6 +5,8 @@ - Licensed under the GNU GPL version 3 or higher. -} +{-# LANGUAGE CPP #-} + module Annex.ReplaceFile where import Annex.Common @@ -27,8 +29,17 @@ replaceFile :: FilePath -> (FilePath -> Annex ()) -> Annex () replaceFile file action = do misctmpdir <- fromRepo gitAnnexTmpMiscDir void $ createAnnexDirectory misctmpdir +#ifndef mingw32_HOST_OS + -- Use part of the filename as the template for the temp + -- directory. This does not need to be unique, but it + -- makes it more clear what this temp directory is for. filemax <- liftIO $ fileNameLengthLimit misctmpdir let basetmp = take (filemax `div` 2) (takeFileName file) +#else + -- Windows has limits on the whole path length, so keep + -- it short. + let basetmp = "t" +#endif withTmpDirIn misctmpdir basetmp $ \tmpdir -> do let tmpfile = tmpdir basetmp action tmpfile -- cgit v1.2.3