]> dgit.raspbian.org Git - git-annex.git/commitdiff
avoid using CopyFile
authorJoey Hess <joeyh@joeyh.name>
Tue, 29 Jun 2021 17:21:21 +0000 (13:21 -0400)
committerJoey Hess <joeyh@joeyh.name>
Tue, 29 Jun 2021 17:21:21 +0000 (13:21 -0400)
If .git/config symlinks are ever a thing, this will handle them better.

But mostly, this is to avoid git-repair needing to include CopyFile,
which would complicate it unduely.

Git/Repair.hs

index df5608a014557b34e386ba7a197c87cf833cae63..144c96fd6097e12b9f5fb74632b16ab0116ac37f 100644 (file)
@@ -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)