diff --git a/CmdLine/Seek.hs b/CmdLine/Seek.hs index f4ac4dfada..e6ee6f3fe4 100644 --- a/CmdLine/Seek.hs +++ b/CmdLine/Seek.hs @@ -119,25 +119,25 @@ withFilesToBeCommitted :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek withFilesToBeCommitted a params = seekActions $ prepFiltered a $ seekHelper LsFiles.stagedNotDeleted params -withFilesUnlocked :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek -withFilesUnlocked = withFilesUnlocked' LsFiles.typeChanged +withFilesOldUnlocked :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek +withFilesOldUnlocked = withFilesOldUnlocked' LsFiles.typeChanged -withFilesUnlockedToBeCommitted :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek -withFilesUnlockedToBeCommitted = withFilesUnlocked' LsFiles.typeChangedStaged +withFilesOldUnlockedToBeCommitted :: (FilePath -> CommandStart) -> CmdParams -> CommandSeek +withFilesOldUnlockedToBeCommitted = withFilesOldUnlocked' LsFiles.typeChangedStaged {- Unlocked files before v6 have changed type from a symlink to a regular file. - - Furthermore, unlocked files used to be a git-annex symlink, - not some other sort of symlink. -} -withFilesUnlocked' :: ([FilePath] -> Git.Repo -> IO ([FilePath], IO Bool)) -> (FilePath -> CommandStart) -> CmdParams -> CommandSeek -withFilesUnlocked' typechanged a params = seekActions $ +withFilesOldUnlocked' :: ([FilePath] -> Git.Repo -> IO ([FilePath], IO Bool)) -> (FilePath -> CommandStart) -> CmdParams -> CommandSeek +withFilesOldUnlocked' typechanged a params = seekActions $ prepFiltered a unlockedfiles where - unlockedfiles = filterM isUnlocked =<< seekHelper typechanged params + unlockedfiles = filterM isOldUnlocked =<< seekHelper typechanged params -isUnlocked :: FilePath -> Annex Bool -isUnlocked f = liftIO (notSymlink f) <&&> +isOldUnlocked :: FilePath -> Annex Bool +isOldUnlocked f = liftIO (notSymlink f) <&&> (isJust <$> catKeyFile f <||> isJust <$> catKeyFileHEAD f) {- Finds files that may be modified. -} diff --git a/Command/Add.hs b/Command/Add.hs index 948a0d94cb..a0bcf789e5 100644 --- a/Command/Add.hs +++ b/Command/Add.hs @@ -69,7 +69,7 @@ seek o = allowConcurrentOutput $ do ifM isDirect ( go withFilesMaybeModified , unlessM versionSupportsUnlockedPointers $ - go withFilesUnlocked + go withFilesOldUnlocked ) {- Pass file off to git-add. -} diff --git a/Command/Lock.hs b/Command/Lock.hs index 3eceaefe4d..16ddce9424 100644 --- a/Command/Lock.hs +++ b/Command/Lock.hs @@ -32,8 +32,8 @@ seek :: CmdParams -> CommandSeek seek ps = ifM versionSupportsUnlockedPointers ( withFilesInGit (whenAnnexed startNew) ps , do - withFilesUnlocked startOld ps - withFilesUnlockedToBeCommitted startOld ps + withFilesOldUnlocked startOld ps + withFilesOldUnlockedToBeCommitted startOld ps ) startNew :: FilePath -> Key -> CommandStart diff --git a/Command/PreCommit.hs b/Command/PreCommit.hs index b6f52d01c2..71a9f86f8c 100644 --- a/Command/PreCommit.hs +++ b/Command/PreCommit.hs @@ -46,7 +46,7 @@ seek ps = lockPreCommitHook $ ifM isDirect ifM (liftIO Git.haveFalseIndex) ( do (fs, cleanup) <- inRepo $ Git.typeChangedStaged ps - whenM (anyM isUnlocked fs) $ + whenM (anyM isOldUnlocked fs) $ error "Cannot make a partial commit with unlocked annexed files. You should `git annex add` the files you want to commit, and then run git commit." void $ liftIO cleanup , do @@ -58,7 +58,7 @@ seek ps = lockPreCommitHook $ ifM isDirect -- (not needed when repo version uses -- unlocked pointer files) unlessM versionSupportsUnlockedPointers $ - withFilesUnlockedToBeCommitted startInjectUnlocked ps + withFilesOldUnlockedToBeCommitted startInjectUnlocked ps ) runAnnexHook preCommitAnnexHook -- committing changes to a view updates metadata