avoid empty commits

This commit is contained in:
Joey Hess 2010-10-14 23:52:45 -04:00
parent c977b6b1f3
commit bbbe9858fe
4 changed files with 16 additions and 9 deletions

View file

@ -8,7 +8,7 @@ module Annex (
backends,
backendsChange,
flagIsSet,
flagsChange,
flagChange,
Flag(..)
) where
@ -60,8 +60,11 @@ flagIsSet :: Flag -> Annex Bool
flagIsSet flag = do
state <- get
return $ elem flag $ Backend.flags state
flagsChange :: [Flag] -> Annex ()
flagsChange b = do
flagChange :: Flag -> Bool -> Annex ()
flagChange flag set = do
state <- get
put state { Backend.flags = b }
let f = filter (/= flag) $ Backend.flags state
if (set)
then put state { Backend.flags = (flag:f) }
else put state { Backend.flags = f }
return ()

View file

@ -10,7 +10,7 @@ import Data.String.Utils
import qualified GitRepo as Git
-- command-line flags
data Flag = Force
data Flag = Force | NeedCommit
deriving (Eq, Read, Show)
-- git-annex's runtime state type doesn't really belong here,

View file

@ -178,7 +178,8 @@ logStatus key status = do
g <- Annex.gitRepo
u <- getUUID g
f <- liftIO $ logChange g key u status
liftIO $ Git.run g ["add", f] -- committed at shutdown
liftIO $ Git.run g ["add", f]
Annex.flagChange NeedCommit True
inBackend file yes no = do
r <- liftIO $ Backend.lookupFile file

View file

@ -14,7 +14,7 @@ import qualified Annex
{- Sets up a git repo for git-annex. -}
startup :: [Flag] -> Annex ()
startup flags = do
Annex.flagsChange flags
mapM (\f -> Annex.flagChange f True) flags
g <- Annex.gitRepo
liftIO $ gitAttributes g
prepUUID
@ -23,8 +23,11 @@ startup flags = do
shutdown :: Annex ()
shutdown = do
g <- Annex.gitRepo
liftIO $ Git.run g ["commit", "-m",
needcommit <- Annex.flagIsSet NeedCommit
if (needcommit)
then liftIO $ Git.run g ["commit", "-m",
"git-annex log update", ".git-annex"]
else return ()
{- configure git to use union merge driver on state files, if it is not
- already -}