Windows: Fix v6 unlocked files to actually work.
Pointer files were not being treated as annex content, so "git annex get" didn't replace them with the object.
This commit is contained in:
parent
dcf42949cb
commit
f9d79d194b
4 changed files with 19 additions and 10 deletions
|
@ -12,6 +12,8 @@
|
|||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module Annex.Link where
|
||||
|
||||
import Annex.Common
|
||||
|
@ -155,3 +157,18 @@ formatPointer k =
|
|||
isPointerFile :: FilePath -> IO (Maybe Key)
|
||||
isPointerFile f = catchDefaultIO Nothing $
|
||||
parseLinkOrPointer <$> L.readFile f
|
||||
|
||||
{- Checks a symlink target or pointer file first line to see if it
|
||||
- appears to point to annexed content.
|
||||
-
|
||||
- We only look for paths inside the .git directory, and not at the .git
|
||||
- directory itself, because GIT_DIR may cause a directory name other
|
||||
- than .git to be used.
|
||||
-}
|
||||
isLinkToAnnex :: FilePath -> Bool
|
||||
isLinkToAnnex s = (pathSeparator:objectDir) `isInfixOf` s
|
||||
#ifdef mingw32_HOST_OS
|
||||
-- '/' is still used inside pointer files on Windows, not the native
|
||||
-- '\'
|
||||
|| ('/':objectDir) `isInfixOf` s
|
||||
#endif
|
||||
|
|
|
@ -63,7 +63,6 @@ module Annex.Locations (
|
|||
gitAnnexSshDir,
|
||||
gitAnnexRemotesDir,
|
||||
gitAnnexAssistantDefaultDir,
|
||||
isLinkToAnnex,
|
||||
HashLevels(..),
|
||||
hashDirMixed,
|
||||
hashDirLower,
|
||||
|
@ -386,15 +385,6 @@ gitAnnexRemotesDir r = addTrailingPathSeparator $ gitAnnexDir r </> "remotes"
|
|||
gitAnnexAssistantDefaultDir :: FilePath
|
||||
gitAnnexAssistantDefaultDir = "annex"
|
||||
|
||||
{- Checks a symlink target to see if it appears to point to annexed content.
|
||||
-
|
||||
- We only look at paths inside the .git directory, and not at the .git
|
||||
- directory itself, because GIT_DIR may cause a directory name other
|
||||
- than .git to be used.
|
||||
-}
|
||||
isLinkToAnnex :: FilePath -> Bool
|
||||
isLinkToAnnex s = (pathSeparator:objectDir) `isInfixOf` s
|
||||
|
||||
{- Sanitizes a String that will be used as part of a Key's keyName,
|
||||
- dealing with characters that cause problems on substandard filesystems.
|
||||
-
|
||||
|
|
|
@ -13,6 +13,7 @@ import Data.Default
|
|||
|
||||
import Annex.Common
|
||||
import Annex.Content
|
||||
import Annex.Link
|
||||
import Logs.Presence
|
||||
import qualified Annex.Queue
|
||||
import qualified Git
|
||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -13,6 +13,7 @@ git-annex (6.20160212) UNRELEASED; urgency=medium
|
|||
present in annex/objects but didn't reach the work tree.
|
||||
* When initializing a v6 repo on a crippled filesystem, don't force it
|
||||
into direct mode.
|
||||
* Windows: Fix v6 unlocked files to actually work.
|
||||
|
||||
-- Joey Hess <id@joeyh.name> Fri, 12 Feb 2016 14:03:46 -0400
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue