diff options
author | Joey Hess <joey@kitenet.net> | 2014-04-15 14:23:08 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-04-15 14:23:08 -0400 |
commit | e110fd9b8b87fcb6da2ecdac0a93a1f71f80552f (patch) | |
tree | a227f6797f15bfa3ad3310ff5a447b7cf9b81584 /Command/Uninit.hs | |
parent | 1fc480e5664930992fbd697c27cc365191d873d3 (diff) |
found a way to make uninit always fast
To do so, I slightly changed the behavior of unannex. Now in fast mode, it
only makes a hard link when the annexed file's link count is 1. This avoids
unannexing 2 files with the same content in fast mode from hard linking
them together. (One will end up hard linked to the annex, which the docs
warn about.)
With that change, uninit can simply always run unannex in fast mode. Since
.git/annex/objects is being blown away anyway, there's no worry in this
case about a hard link pointing into it causing an annexed object to be
modified.
Diffstat (limited to 'Command/Uninit.hs')
-rw-r--r-- | Command/Uninit.hs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/Command/Uninit.hs b/Command/Uninit.hs index 5b2adf0bd..dccf4a614 100644 --- a/Command/Uninit.hs +++ b/Command/Uninit.hs @@ -8,6 +8,7 @@ module Command.Uninit where import Common.Annex +import qualified Annex import Command import qualified Git import qualified Git.Command @@ -37,6 +38,7 @@ check = do seek :: CommandSeek seek ps = do withFilesNotInGit False (whenAnnexed startCheckIncomplete) ps + Annex.changeState $ \s -> s { Annex.fast = True } withFilesInGit (whenAnnexed Command.Unannex.start) ps finish |