diff options
author | Joey Hess <joey@kitenet.net> | 2012-06-10 13:05:58 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-06-10 13:05:58 -0400 |
commit | 5308b51ec0dce12849d8f4e5bc3f0adf6bf09a5f (patch) | |
tree | be332b496290570b48445c697472fa1e84a25803 /Git | |
parent | 7f39415600a808c7664520a435eb45cf8d82f7ce (diff) |
stage deletions directly using update-index
no need to run git-rm separately
Diffstat (limited to 'Git')
-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 |