diff options
-rw-r--r-- | Command/Unannex.hs | 13 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/git-annex.mdwn | 3 |
3 files changed, 16 insertions, 2 deletions
diff --git a/Command/Unannex.hs b/Command/Unannex.hs index d30f8d20f..f0c1b27c6 100644 --- a/Command/Unannex.hs +++ b/Command/Unannex.hs @@ -10,6 +10,7 @@ module Command.Unannex where import Control.Monad.State (liftIO) import Control.Monad (unless) import System.Directory +import System.Posix.Files import Command import qualified Annex @@ -22,6 +23,7 @@ import Content import qualified Git import qualified Git.LsFiles as LsFiles import Messages +import Locations command :: [Command] command = [repoCommand "unannex" paramPath seek "undo accidential add command"] @@ -64,8 +66,15 @@ cleanup file key = do -- git rm deletes empty directories; put them back liftIO $ createDirectoryIfMissing True (parentDir file) - fromAnnex key file - logStatus key InfoMissing + fast <- Annex.getState Annex.fast + if fast + then liftIO $ do + -- fast mode: hard link to content in annex + createLink (gitAnnexLocation g key) file + allowWrite file + else do + fromAnnex key file + logStatus key InfoMissing -- Commit staged changes at end to avoid confusing the -- pre-commit hook if this file is later added back to diff --git a/debian/changelog b/debian/changelog index 3564acd17..844c6c3ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ git-annex (3.20110703) UNRELEASED; urgency=low * uninit: Delete the git-annex branch and .git/annex/ + * unannex: In --fast mode, file content is left in the annex, and a + hard link made to it. -- Joey Hess <joeyh@debian.org> Mon, 04 Jul 2011 15:50:21 -0400 diff --git a/doc/git-annex.mdwn b/doc/git-annex.mdwn index c45088748..dfb23f5f2 100644 --- a/doc/git-annex.mdwn +++ b/doc/git-annex.mdwn @@ -239,6 +239,9 @@ Many git-annex commands will stage changes for later `git commit` by you. file and don't want its contents any more. In that case you should use `git annex drop` instead, and you can also `git rm` the file. + In --fast mode, this command leaves content in the annex, simply making + a hard link to it. + * uninit Use this to stop using git annex. It will unannex every file in the |