fix LsFiles.typeChanged paths
Passing absolute paths to Command.Add used to work, but after recent changes doesn't. All LsFiles should use relative paths anyway, so fix it there.
This commit is contained in:
parent
cbaebf538a
commit
a2f241d503
3 changed files with 8 additions and 5 deletions
|
@ -19,7 +19,6 @@ import System.Posix.Files
|
||||||
|
|
||||||
import Common.Annex
|
import Common.Annex
|
||||||
import qualified Git.Config
|
import qualified Git.Config
|
||||||
import qualified Git.CheckAttr
|
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
import Annex.CheckAttr
|
import Annex.CheckAttr
|
||||||
import Types.Key
|
import Types.Key
|
||||||
|
|
|
@ -65,7 +65,13 @@ typeChanged :: [FilePath] -> Repo -> IO [FilePath]
|
||||||
typeChanged = typeChanged' []
|
typeChanged = typeChanged' []
|
||||||
|
|
||||||
typeChanged' :: [CommandParam] -> [FilePath] -> Repo -> IO [FilePath]
|
typeChanged' :: [CommandParam] -> [FilePath] -> Repo -> IO [FilePath]
|
||||||
typeChanged' ps l = pipeNullSplit $ prefix ++ ps ++ suffix
|
typeChanged' ps l repo = do
|
||||||
|
fs <- pipeNullSplit (prefix ++ ps ++ suffix) repo
|
||||||
|
-- git diff returns filenames relative to the top of the git repo;
|
||||||
|
-- convert to filenames relative to the cwd, like git ls-files.
|
||||||
|
let top = workTree repo
|
||||||
|
cwd <- getCurrentDirectory
|
||||||
|
return $ map (\f -> relPathDirToFile cwd $ top </> f) fs
|
||||||
where
|
where
|
||||||
prefix = [Params "diff --name-only --diff-filter=T -z"]
|
prefix = [Params "diff --name-only --diff-filter=T -z"]
|
||||||
suffix = Param "--" : map File l
|
suffix = Param "--" : map File l
|
||||||
|
|
4
Seek.hs
4
Seek.hs
|
@ -58,10 +58,8 @@ withFilesUnlockedToBeCommitted = withFilesUnlocked' LsFiles.typeChangedStaged
|
||||||
withFilesUnlocked' :: ([FilePath] -> Git.Repo -> IO [FilePath]) -> (FilePath -> CommandStart) -> CommandSeek
|
withFilesUnlocked' :: ([FilePath] -> Git.Repo -> IO [FilePath]) -> (FilePath -> CommandStart) -> CommandSeek
|
||||||
withFilesUnlocked' typechanged a params = do
|
withFilesUnlocked' typechanged a params = do
|
||||||
-- unlocked files have changed type from a symlink to a regular file
|
-- unlocked files have changed type from a symlink to a regular file
|
||||||
top <- fromRepo Git.workTree
|
|
||||||
typechangedfiles <- seekHelper typechanged params
|
typechangedfiles <- seekHelper typechanged params
|
||||||
let unlockedfiles = liftIO $ filterM notSymlink $
|
let unlockedfiles = liftIO $ filterM notSymlink typechangedfiles
|
||||||
map (\f -> top ++ "/" ++ f) typechangedfiles
|
|
||||||
prepFiltered a unlockedfiles
|
prepFiltered a unlockedfiles
|
||||||
|
|
||||||
withKeys :: (Key -> CommandStart) -> CommandSeek
|
withKeys :: (Key -> CommandStart) -> CommandSeek
|
||||||
|
|
Loading…
Reference in a new issue