This commit is contained in:
Joey Hess 2010-10-12 13:02:41 -04:00
parent 31b24348d2
commit ea5d7fe07a
3 changed files with 21 additions and 4 deletions

View file

@ -10,6 +10,8 @@ module Annex (
import System.Posix.Files
import System.Directory
import System.Cmd.Utils
import System.IO
import GitRepo
import Utility
import Locations
@ -84,6 +86,13 @@ unannexFile state file = do
{- Sets up a git repo for git-annex. May be called repeatedly. -}
gitPrep :: GitRepo -> IO ()
gitPrep repo = do
-- Make sure that the repo has an annex.uuid setting.
if ("" == gitConfig repo "annex.uuid" "")
then do
uuid <- genUUID
gitRun repo ["config", "annex.uuid", uuid]
else return ()
-- configure git to use union merge driver on state files
let attrLine = stateLoc ++ "/*.log merge=union"
let attributes = gitAttributes repo
@ -99,3 +108,9 @@ gitPrep repo = do
appendFile attributes $ attrLine ++ "\n"
gitAdd repo attributes
else return ()
{- Generates a UUID. There is a library for this, but it's not packaged,
- so use the command line tool. -}
genUUID :: IO String
genUUID = do
pOpen ReadFromPipe "uuid" ["-m"] $ \h -> hGetLine h