assistant: Prevent automatic commits from causing git-gc runs, as that can make things quite slow. Instead, git-gc --auto is run once a day. (This can be disabled by the usual gc.auto=0 setting.)
This commit is contained in:
parent
0c13d3065e
commit
6dea43831e
3 changed files with 12 additions and 1 deletions
|
@ -82,7 +82,8 @@ commitStaged = do
|
|||
Right _ -> do
|
||||
direct <- isDirect
|
||||
let params = nomessage $ catMaybes
|
||||
[ Just $ Param "commit"
|
||||
[ Just $ Param "-c", Just $ Param "gc.auto=0"
|
||||
, Just $ Param "commit"
|
||||
, Just $ Param "--quiet"
|
||||
{- In indirect mode, avoid running the
|
||||
- usual git-annex pre-commit hook;
|
||||
|
|
|
@ -14,6 +14,7 @@ import Assistant.Common
|
|||
import Assistant.DaemonStatus
|
||||
import Assistant.Alert
|
||||
import qualified Git.LsFiles
|
||||
import qualified Git.Command
|
||||
import Utility.ThreadScheduler
|
||||
import qualified Assistant.Threads.Watcher as Watcher
|
||||
import Utility.LogFile
|
||||
|
@ -71,6 +72,7 @@ waitForNextCheck = do
|
|||
dailyCheck :: Assistant Bool
|
||||
dailyCheck = do
|
||||
g <- liftAnnex gitRepo
|
||||
|
||||
-- Find old unstaged symlinks, and add them to git.
|
||||
(unstaged, cleanup) <- liftIO $ Git.LsFiles.notInRepo False ["."] g
|
||||
now <- liftIO $ getPOSIXTime
|
||||
|
@ -81,6 +83,11 @@ dailyCheck = do
|
|||
| isSymbolicLink s -> addsymlink file ms
|
||||
_ -> noop
|
||||
liftIO $ void cleanup
|
||||
|
||||
{- Allow git-gc to run once per day. More frequent gc is avoided
|
||||
- to avoid slowing things down. -}
|
||||
void $ liftIO $ Git.Command.runBool [Param "gc", Param "--auto"] g
|
||||
|
||||
return True
|
||||
where
|
||||
toonew timestamp now = now < (realToFrac (timestamp + slop) :: POSIXTime)
|
||||
|
|
3
debian/changelog
vendored
3
debian/changelog
vendored
|
@ -9,6 +9,9 @@ git-annex (4.20130228) UNRELEASED; urgency=low
|
|||
files in direct mode repositories.
|
||||
* assistant: Fix dropping content when a file is moved to an archive
|
||||
directory.
|
||||
* assistant: Prevent automatic commits from causing git-gc runs,
|
||||
as that can make things quite slow. Instead, git-gc --auto is run
|
||||
once a day. (This can be disabled by the usual gc.auto=0 setting.)
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Wed, 27 Feb 2013 23:20:40 -0400
|
||||
|
||||
|
|
Loading…
Reference in a new issue