New annex.hardlink setting. Closes: #758593
* New annex.hardlink setting. Closes: #758593 * init: Automatically detect when a repository was cloned with --shared, and set annex.hardlink=true, as well as marking the repository as untrusted. Had to reorganize Logs.Trust a bit to avoid a cycle between it and Annex.Init.
This commit is contained in:
parent
0881f6d45c
commit
b874f84086
9 changed files with 94 additions and 19 deletions
|
@ -33,3 +33,17 @@ looseObjectFile :: Repo -> Sha -> FilePath
|
|||
looseObjectFile r sha = objectsDir r </> prefix </> rest
|
||||
where
|
||||
(prefix, rest) = splitAt 2 (fromRef sha)
|
||||
|
||||
listAlternates :: Repo -> IO [FilePath]
|
||||
listAlternates r = catchDefaultIO [] (lines <$> readFile alternatesfile)
|
||||
where
|
||||
alternatesfile = objectsDir r </> "info" </> "alternates"
|
||||
|
||||
{- A repository recently cloned with --shared will have one or more
|
||||
- alternates listed, and contain no loose objects or packs. -}
|
||||
isSharedClone :: Repo -> IO Bool
|
||||
isSharedClone r = allM id
|
||||
[ not . null <$> listAlternates r
|
||||
, null <$> listLooseObjectShas r
|
||||
, null <$> listPackFiles r
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue