update uninit to handle all the v7 stuff

* uninit: Remove several git hooks that git-annex init sets up.
* uninit: Remove the smudge and clean filters that git-annex init sets up.
This commit is contained in:
Joey Hess 2019-10-08 14:34:00 -04:00
parent 3de6dffd36
commit 53da7f1cf8
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 41 additions and 12 deletions

View file

@ -1,10 +1,10 @@
{- git-annex git hooks {- git-annex git hooks
- -
- Note that it's important that the scripts installed by git-annex - Note that it's important that the content of scripts installed by
- not change, otherwise removing old hooks using an old version of - git-annex not change, otherwise removing old hooks using an old
- the script would fail. - version of the script would fail.
- -
- Copyright 2013-2018 Joey Hess <id@joeyh.name> - Copyright 2013-2019 Joey Hess <id@joeyh.name>
- -
- Licensed under the GNU AGPL version 3 or higher. - Licensed under the GNU AGPL version 3 or higher.
-} -}
@ -18,6 +18,16 @@ import Utility.Shell
import qualified Data.Map as M import qualified Data.Map as M
-- Remove all hooks.
unHook :: Annex ()
unHook = do
hookUnWrite preCommitHook
hookUnWrite postReceiveHook
hookUnWrite postCheckoutHook
hookUnWrite postMergeHook
hookUnWrite preCommitAnnexHook
hookUnWrite postUpdateAnnexHook
preCommitHook :: Git.Hook preCommitHook :: Git.Hook
preCommitHook = Git.Hook "pre-commit" (mkHookScript "git annex pre-commit .") [] preCommitHook = Git.Hook "pre-commit" (mkHookScript "git annex pre-commit .") []

View file

@ -128,8 +128,8 @@ initialize' mversion = checkCanInitialize $ do
uninitialize :: Annex () uninitialize :: Annex ()
uninitialize = do uninitialize = do
hookUnWrite preCommitHook unHook
hookUnWrite postReceiveHook deconfigureSmudgeFilter
removeRepoUUID removeRepoUUID
removeVersion removeVersion

View file

@ -21,6 +21,8 @@ git-annex (7.20190913) UNRELEASED; urgency=medium
Thanks to Peter Simons for help with analysis of this bug. Thanks to Peter Simons for help with analysis of this bug.
* When dropping an unlocked file, preserve its mtime, which avoids * When dropping an unlocked file, preserve its mtime, which avoids
git status unncessarily running the clean filter on the file. git status unncessarily running the clean filter on the file.
* uninit: Remove several git hooks that git-annex init sets up.
* uninit: Remove the smudge and clean filters that git-annex init sets up.
-- Joey Hess <id@joeyh.name> Thu, 19 Sep 2019 11:11:19 -0400 -- Joey Hess <id@joeyh.name> Thu, 19 Sep 2019 11:11:19 -0400

View file

@ -1,6 +1,6 @@
{- Git smudge filter configuration {- Git smudge filter configuration
- -
- Copyright 2011-2018 Joey Hess <id@joeyh.name> - Copyright 2011-2019 Joey Hess <id@joeyh.name>
- -
- Licensed under the GNU AGPL version 3 or higher. - Licensed under the GNU AGPL version 3 or higher.
-} -}
@ -32,10 +32,25 @@ configureSmudgeFilter = unlessM (fromRepo Git.repoIsLocalBare) $ do
gfs <- readattr gf gfs <- readattr gf
liftIO $ unless ("filter=annex" `isInfixOf` (lfs ++ gfs)) $ do liftIO $ unless ("filter=annex" `isInfixOf` (lfs ++ gfs)) $ do
createDirectoryIfMissing True (takeDirectory lf) createDirectoryIfMissing True (takeDirectory lf)
writeFile lf (lfs ++ "\n" ++ stdattr) writeFile lf (lfs ++ "\n" ++ unlines stdattr)
where where
readattr = liftIO . catchDefaultIO "" . readFileStrict readattr = liftIO . catchDefaultIO "" . readFileStrict
stdattr = unlines
[ "* filter=annex" stdattr :: [String]
, ".* !filter" stdattr =
] [ "* filter=annex"
, ".* !filter"
]
-- Note that this removes the local git attributes for filtering,
-- which is what git-annex installed, but it does not change anything
-- that may have been committed to a .gitattributes in the repository.
-- git-annex does not commit that.
deconfigureSmudgeFilter :: Annex ()
deconfigureSmudgeFilter = do
lf <- Annex.fromRepo Git.attributesLocal
ls <- liftIO $ catchDefaultIO [] $ lines <$> readFileStrict lf
liftIO $ writeFile lf $ unlines $
filter (\l -> l `notElem` stdattr && not (null l)) ls
unsetConfig (ConfigKey "filter.annex.smudge")
unsetConfig (ConfigKey "filter.annex.clean")

View file

@ -47,3 +47,5 @@ I accidentally discovered this after a system upgrade that included the latest v
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders) ### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
I love git-annex (a brilliantly designed piece of software in my view) and have been using it a lot for years! I love git-annex (a brilliantly designed piece of software in my view) and have been using it a lot for years!
> Thanks for pointing out this oversight. [[fixed|done]] --[[Joey]]