diff --git a/Git/Repair.hs b/Git/Repair.hs index df5608a014..144c96fd60 100644 --- a/Git/Repair.hs +++ b/Git/Repair.hs @@ -42,7 +42,6 @@ import Utility.Directory.Create import Utility.Tmp.Dir import Utility.Rsync import Utility.FileMode -import Utility.CopyFile import qualified Utility.RawFilePath as R import qualified Data.Set as S @@ -116,12 +115,10 @@ retrieveMissingObjects missing referencerepo r | otherwise = withTmpDir "tmprepo" $ \tmpdir -> do unlessM (boolSystem "git" [Param "init", File tmpdir]) $ error $ "failed to create temp repository in " ++ tmpdir - let repoconfig r' = fromRawFilePath (localGitDir r' P. "config") tmpr <- Config.read =<< Construct.fromPath (toRawFilePath tmpdir) + let repoconfig r' = fromRawFilePath (localGitDir r' P. "config") whenM (doesFileExist (repoconfig r)) $ - void $ copyFileExternal CopyAllMetaData - (repoconfig r) - (repoconfig tmpr) + L.readFile (repoconfig r) >>= L.writeFile (repoconfig tmpr) rs <- Construct.fromRemotes r stillmissing <- pullremotes tmpr rs fetchrefstags missing if S.null (knownMissing stillmissing)