Now "git annex init" only has to be run once
when a git repository is first being created. Clones will automatically notice that git-annex is in use and automatically perform a basic initalization. It's still recommended to run "git annex init" in any clones, to describe them.
This commit is contained in:
parent
3b5f722130
commit
56f6923ccb
7 changed files with 127 additions and 66 deletions
|
@ -7,19 +7,13 @@
|
|||
|
||||
module Command.Init where
|
||||
|
||||
import Control.Monad.State (liftIO)
|
||||
import Control.Monad (when, unless)
|
||||
import System.Directory
|
||||
import Control.Monad (when)
|
||||
|
||||
import Command
|
||||
import qualified Annex
|
||||
import qualified Git
|
||||
import qualified Branch
|
||||
import UUID
|
||||
import Version
|
||||
import Messages
|
||||
import Types
|
||||
import Utility
|
||||
import Init
|
||||
|
||||
command :: [Command]
|
||||
command = [standaloneCommand "init" paramDesc seek
|
||||
|
@ -39,34 +33,8 @@ start ws = do
|
|||
|
||||
perform :: String -> CommandPerform
|
||||
perform description = do
|
||||
Branch.create
|
||||
initialize
|
||||
g <- Annex.gitRepo
|
||||
u <- getUUID g
|
||||
setVersion
|
||||
describeUUID u description
|
||||
unless (Git.repoIsLocalBare g) $
|
||||
gitPreCommitHookWrite g
|
||||
next $ return True
|
||||
|
||||
{- set up a git pre-commit hook, if one is not already present -}
|
||||
gitPreCommitHookWrite :: Git.Repo -> Annex ()
|
||||
gitPreCommitHookWrite repo = do
|
||||
exists <- liftIO $ doesFileExist hook
|
||||
if exists
|
||||
then warning $ "pre-commit hook (" ++ hook ++ ") already exists, not configuring"
|
||||
else liftIO $ do
|
||||
viaTmp writeFile hook preCommitScript
|
||||
p <- getPermissions hook
|
||||
setPermissions hook $ p {executable = True}
|
||||
where
|
||||
hook = preCommitHook repo
|
||||
|
||||
preCommitHook :: Git.Repo -> FilePath
|
||||
preCommitHook repo =
|
||||
Git.workTree repo ++ "/" ++ Git.gitDir repo ++ "/hooks/pre-commit"
|
||||
|
||||
preCommitScript :: String
|
||||
preCommitScript =
|
||||
"#!/bin/sh\n" ++
|
||||
"# automatically configured by git-annex\n" ++
|
||||
"git annex pre-commit .\n"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue