summaryrefslogtreecommitdiff
path: root/Init.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Init.hs')
-rw-r--r--Init.hs17
1 files changed, 16 insertions, 1 deletions
diff --git a/Init.hs b/Init.hs
index 41256a953..36d3ed0fa 100644
--- a/Init.hs
+++ b/Init.hs
@@ -5,7 +5,11 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Init (initialize, uninitialize) where
+module Init (
+ initialize,
+ initializeSafe,
+ uninitialize
+) where
import Control.Monad.State (liftIO)
import Control.Monad (unless)
@@ -34,6 +38,17 @@ uninitialize = do
g <- Annex.gitRepo
gitPreCommitHookUnWrite g
+{- Call to automatically initialize if there is already a git-annex
+ branch from somewhere. Otherwise, require a manual init
+ to avoid git-annex accidentially being run in git
+ repos that did not intend to use it. -}
+initializeSafe :: Annex ()
+initializeSafe = do
+ annexed <- Branch.hasSomeBranch
+ if annexed
+ then initialize
+ else error "First run: git-annex init"
+
{- set up a git pre-commit hook, if one is not already present -}
gitPreCommitHookWrite :: Git.Repo -> Annex ()
gitPreCommitHookWrite repo = do