uninit: Use unannex in --fast mode, to support unannexing multiple files that link to the same content.
This commit is contained in:
parent
d7ce51af5a
commit
71c783bf24
3 changed files with 18 additions and 6 deletions
|
@ -28,7 +28,15 @@ command = [repoCommand "uninit" paramPath seek
|
|||
"de-initialize git-annex and clean out repository"]
|
||||
|
||||
seek :: [CommandSeek]
|
||||
seek = [withFilesInGit Command.Unannex.start, withNothing start]
|
||||
seek = [withFilesInGit startUnannex, withNothing start]
|
||||
|
||||
startUnannex :: CommandStartString
|
||||
startUnannex file = do
|
||||
-- Force fast mode before running unannex. This way, if multiple
|
||||
-- files link to a key, it will be left in the annex and hardlinked
|
||||
-- to by each.
|
||||
Annex.changeState $ \s -> s { Annex.fast = True }
|
||||
Command.Unannex.start file
|
||||
|
||||
start :: CommandStartNothing
|
||||
start = next perform
|
||||
|
@ -40,12 +48,12 @@ cleanup :: CommandCleanup
|
|||
cleanup = do
|
||||
g <- Annex.gitRepo
|
||||
gitPreCommitHookUnWrite g
|
||||
saveState
|
||||
liftIO $ do
|
||||
Git.run g "branch" [Param "-D", Param Branch.name]
|
||||
removeDirectoryRecursive (gitAnnexDir g)
|
||||
mapM_ removeAnnex =<< getKeysPresent
|
||||
liftIO $ removeDirectoryRecursive (gitAnnexDir g)
|
||||
-- avoid normal shutdown
|
||||
exitSuccess
|
||||
saveState
|
||||
liftIO $ Git.run g "branch" [Param "-D", Param Branch.name]
|
||||
liftIO $ exitSuccess
|
||||
|
||||
gitPreCommitHookUnWrite :: Git.Repo -> Annex ()
|
||||
gitPreCommitHookUnWrite repo = do
|
||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -3,6 +3,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.
|
||||
* uninit: Use unannex in --fast mode, to support unannexing multiple
|
||||
files that link to the same content.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Mon, 04 Jul 2011 15:50:21 -0400
|
||||
|
||||
|
|
|
@ -16,3 +16,5 @@ Rafaël
|
|||
> `dropunused` to actually remove the content. While doable, by use case
|
||||
> for unannex is more to quickly undo a mistaken add, and it's unlikely there
|
||||
> are multiple symlinks to the same content in this situation. --[[Joey]]
|
||||
|
||||
[[!tag done]]
|
||||
|
|
Loading…
Reference in a new issue