git-annex/Command/Lock.hs
Joey Hess 65977a5584 lock: Reset unlocked file to index, rather than to branch head.
Resetting an unlocked file to the branch head failed if it had just been
added, not committed, and unlocked, since the branch didbn't have it.

The code was concerned about dropping any changes that might be staged in the
index, but I cannot see why.
2012-05-30 17:01:22 -04:00

28 lines
636 B
Haskell

{- git-annex command
-
- Copyright 2010 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
module Command.Lock where
import Common.Annex
import Command
import qualified Annex.Queue
def :: [Command]
def = [command "lock" paramPaths seek "undo unlock command"]
seek :: [CommandSeek]
seek = [withFilesUnlocked start, withFilesUnlockedToBeCommitted start]
start :: FilePath -> CommandStart
start file = do
showStart "lock" file
next $ perform file
perform :: FilePath -> CommandPerform
perform file = do
Annex.Queue.add "checkout" [Param "--"] [file]
next $ return True -- no cleanup needed