diff options
author | Joey Hess <joey@kitenet.net> | 2012-02-14 00:22:42 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-02-14 00:22:42 -0400 |
commit | a2f241d50344726831ece2a354a599f389b20b54 (patch) | |
tree | 4201ae25224683439dc32437b7708eab3ab81a5b /Git/LsFiles.hs | |
parent | cbaebf538a8659193fb3dbb4f32e0f918a385af3 (diff) |
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.
Diffstat (limited to 'Git/LsFiles.hs')
-rw-r--r-- | Git/LsFiles.hs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Git/LsFiles.hs b/Git/LsFiles.hs index 0de86383d..201d76d1d 100644 --- a/Git/LsFiles.hs +++ b/Git/LsFiles.hs @@ -65,7 +65,13 @@ typeChanged :: [FilePath] -> Repo -> IO [FilePath] typeChanged = typeChanged' [] 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 prefix = [Params "diff --name-only --diff-filter=T -z"] suffix = Param "--" : map File l |