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 /Command/Watch.hs | |
parent | 7f39415600a808c7664520a435eb45cf8d82f7ce (diff) |
stage deletions directly using update-index
no need to run git-rm separately
Diffstat (limited to 'Command/Watch.hs')
-rw-r--r-- | Command/Watch.hs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Command/Watch.hs b/Command/Watch.hs index f9daa1a99..d50a581a1 100644 --- a/Command/Watch.hs +++ b/Command/Watch.hs @@ -123,11 +123,16 @@ onAddSymlink file = go =<< Backend.lookupFile file {- The file could reappear at any time, so --cached is used, to only delete - it from the index. -} onDel :: FilePath -> Annex () -onDel file = Annex.Queue.addCommand "rm" - [Params "--quiet --cached --ignore-unmatch --"] [file] +onDel file = Annex.Queue.addUpdateIndex =<< + inRepo (Git.UpdateIndex.unstageFile file) {- A directory has been deleted, or moved, so tell git to remove anything - - that was inside it from its cache. -} + - that was inside it from its cache. Since it could reappear at any time, + - use --cached to only delete it from the index. + - + - Note: This could use unstageFile, but would need to run another git + - command to get the recursive list of files in the directory, so rm is + - just as good. -} onDelDir :: FilePath -> Annex () onDelDir dir = Annex.Queue.addCommand "rm" [Params "--quiet -r --cached --ignore-unmatch --"] [dir] |