diff options
Diffstat (limited to 'Git/UpdateIndex.hs')
-rw-r--r-- | Git/UpdateIndex.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Git/UpdateIndex.hs b/Git/UpdateIndex.hs index faffeec66..07057ed98 100644 --- a/Git/UpdateIndex.hs +++ b/Git/UpdateIndex.hs @@ -13,6 +13,7 @@ module Git.UpdateIndex ( streamUpdateIndex, lsTree, updateIndexLine, + unstageFile, stageSymlink ) where @@ -24,6 +25,7 @@ import Git.Types import Git.Command import Git.FilePath import Git.HashObject +import Git.Sha {- Streamers are passed a callback and should feed it lines in the form - read by update-index, and generated by ls-tree. -} @@ -61,6 +63,12 @@ updateIndexLine :: Sha -> BlobType -> TopFilePath -> String updateIndexLine sha filetype file = show filetype ++ " blob " ++ show sha ++ "\t" ++ getTopFilePath file +{- A streamer that removes a file from the index. -} +unstageFile :: FilePath -> Repo -> IO Streamer +unstageFile file repo = do + p <- toTopFilePath file repo + return $ pureStreamer $ "0 " ++ show nullSha ++ "\t" ++ getTopFilePath p + {- A streamer that adds a symlink to the index. -} stageSymlink :: FilePath -> String -> Repo -> IO Streamer stageSymlink file linktext repo = do |