summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-04-11 18:31:35 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-04-11 18:31:35 -0400
commit03f34cfa3aad7fca790ccb14fba11f7bb9e23a52 (patch)
tree8575b16f6646b3469a9370857b02f35790d8c9de
parent8246e7eb07533bbe179bd5e7b98c1c655900df0b (diff)
parent42dcfa8cf5c17974049b773acadca568e89a09d6 (diff)
Merge branch 'master' of ssh://git-annex.branchable.com
-rw-r--r--Utility/Scheduled.hs12
-rw-r--r--debian/changelog6
-rw-r--r--doc/news/version_5.20140306.mdwn34
-rw-r--r--doc/news/version_5.20140412.mdwn3
-rw-r--r--git-annex.cabal2
5 files changed, 19 insertions, 38 deletions
diff --git a/Utility/Scheduled.hs b/Utility/Scheduled.hs
index 2b7cae2b6..1b25cb4c7 100644
--- a/Utility/Scheduled.hs
+++ b/Utility/Scheduled.hs
@@ -86,7 +86,7 @@ nextTime schedule lasttime = do
{- Calculate the next time that fits a Schedule, based on the
- last time it occurred, and the current time. -}
calcNextTime :: Schedule -> Maybe LocalTime -> LocalTime -> Maybe NextTime
-calcNextTime (Schedule recurrance scheduledtime) lasttime currenttime
+calcNextTime schedule@(Schedule recurrance scheduledtime) lasttime currenttime
| scheduledtime == AnyTime = do
next <- findfromtoday True
return $ case next of
@@ -108,7 +108,13 @@ calcNextTime (Schedule recurrance scheduledtime) lasttime currenttime
window startd endd = NextTimeWindow
(LocalTime startd nexttime)
(LocalTime endd (TimeOfDay 23 59 0))
- findfrom r afterday candidate = case r of
+ findfrom r afterday candidate
+ | ynum candidate > (ynum (localDay currenttime)) + 100 =
+ -- avoid possible infinite recusion
+ error $ "bug: calcNextTime did not find a time within 100 years to run " ++
+ show (schedule, lasttime, currenttime)
+ | otherwise = findfromChecked r afterday candidate
+ findfromChecked r afterday candidate = case r of
Daily
| afterday -> Just $ exactly $ addDays 1 candidate
| otherwise -> Just $ exactly candidate
@@ -121,7 +127,7 @@ calcNextTime (Schedule recurrance scheduledtime) lasttime currenttime
| otherwise -> skip 1
Monthly Nothing
| afterday -> skip 1
- | maybe True (\old -> mnum candidate > mnum old && mday candidate >= (mday old `mod` minmday)) lastday ->
+ | maybe True (\old -> mday candidate > mday old && mday candidate >= (mday old `mod` minmday)) lastday ->
-- Window only covers current month,
-- in case there is a Divisible requirement.
Just $ window candidate (endOfMonth candidate)
diff --git a/debian/changelog b/debian/changelog
index 0c0bfafdb..a883ddda9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+git-annex (5.20140412) unstable; urgency=high
+
+ * Last release didn't quite fix the high cpu issue in all cases, this should.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 17:14:38 -0400
+
git-annex (5.20140411) unstable; urgency=high
* importfeed: Filename template can now contain an itempubdate variable.
diff --git a/doc/news/version_5.20140306.mdwn b/doc/news/version_5.20140306.mdwn
deleted file mode 100644
index ef302495b..000000000
--- a/doc/news/version_5.20140306.mdwn
+++ /dev/null
@@ -1,34 +0,0 @@
-git-annex 5.20140306 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * sync: Fix bug in direct mode that caused a file that was not
- checked into git to be deleted when there was a conflicting
- merge with a remote.
- * webapp: Now supports HTTPS.
- * webapp: No longer supports a port specified after --listen, since
- it was buggy, and that use case is better supported by setting up HTTPS.
- * annex.listen can be configured, instead of using --listen
- * annex.startupscan can be set to false to disable the assistant's startup
- scan.
- * Probe for quvi version at run time.
- * webapp: Filter out from Switch Repository list any
- repositories listed in autostart file that don't have a
- git directory anymore. (Or are bare)
- * webapp: Refuse to start in a bare git repository.
- * assistant --autostart: Refuse to start in a bare git repository.
- * webapp: Don't list the public repository group when editing a
- git repository; it only makes sense for special remotes.
- * view, vfilter: Add support for filtering tags and values out of a view,
- using !tag and field!=value.
- * vadd: Allow listing multiple desired values for a field.
- * view: Refuse to enter a view when no branch is currently checked out.
- * metadata: To only set a field when it's not already got a value, use
- -s field?=value
- * Run .git/hooks/pre-commit-annex whenever a commit is made.
- * sync: Automatically resolve merge conflict between and annexed file
- and a regular git file.
- * glacier: Pass --region to glacier checkpresent.
- * webdav: When built with a new enough haskell DAV (0.6), disable
- the http response timeout, which was only 5 seconds.
- * webapp: Include no-pty in ssh authorized\_keys lines.
- * assistant: Smarter log file rotation, which takes free disk space
- into account."""]] \ No newline at end of file
diff --git a/doc/news/version_5.20140412.mdwn b/doc/news/version_5.20140412.mdwn
new file mode 100644
index 000000000..7e9267a61
--- /dev/null
+++ b/doc/news/version_5.20140412.mdwn
@@ -0,0 +1,3 @@
+git-annex 5.20140412 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Last release didn't quite fix the high cpu issue in all cases, this should."""]] \ No newline at end of file
diff --git a/git-annex.cabal b/git-annex.cabal
index ccbd14724..855fecd5a 100644
--- a/git-annex.cabal
+++ b/git-annex.cabal
@@ -1,5 +1,5 @@
Name: git-annex
-Version: 5.20140411
+Version: 5.20140412
Cabal-Version: >= 1.8
License: GPL-3
Maintainer: Joey Hess <joey@kitenet.net>