git-annex/Utility
Joey Hess b133a76f96 recursive inotify thing
Recursive inotify has beaten me before, with its bad design and races,
but not this time! (I think.) This is able to follow the strongest
filesystem traffic I can throw at it, and robustly notices every file
add and delete. Mostly that's down to Haskell having a quite nice threaded
inotify library (that does its own buffering). A key insight was realizing
that the inotify directory add race could be dealt with by scanning for
files inside newly added directories.

TODO: Add support for freebsd/osx kqueue; see
http://hackage.haskell.org/package/kqueue

Can a git-annex-monitor be far off?
2012-04-11 20:09:38 -04:00
..
Base64.hs rename 2011-07-05 20:24:10 -04:00
CoProcess.hs refactor 2012-02-20 15:22:21 -04:00
CopyFile.hs remove Utility.Conditional and use IfElse 2012-01-24 16:22:07 -04:00
DataUnits.hs hslint 2011-12-09 01:57:13 -04:00
Directory.hs move 2012-03-11 18:12:36 -04:00
diskfree.c Disable diskfree on kfreebsd, as I have a build failure on kfreebsd-i386 that is quite likely caused by it. 2012-04-07 15:50:34 -04:00
diskfree.h Rewrote free disk space checking code 2012-03-22 17:32:47 -04:00
DiskFree.hs tweak 2012-03-22 23:02:20 -04:00
Dot.hs finished hlint pass 2011-07-15 12:47:14 -04:00
Exception.hs simplify 2012-03-16 02:12:56 -04:00
FileMode.hs check hook executability 2012-03-14 12:17:38 -04:00
FileSystemEncoding.hs perhaps more clear type 2012-03-10 11:38:38 -04:00
Format.hs hlint 2012-02-16 00:44:51 -04:00
Gpg.hs don't use GPG_AGENT_INFO to force batch mode in test suite 2012-01-09 18:19:29 -04:00
Inotify.hs recursive inotify thing 2012-04-11 20:09:38 -04:00
JSONStream.hs go go gadget hlint 2011-09-20 23:24:48 -04:00
Matcher.hs fun with symbols 2012-03-17 00:38:40 -04:00
Misc.hs factor out Utility.FileSystemEncoding 2012-03-09 19:08:10 -04:00
Monad.hs fun with symbols 2012-03-17 00:38:40 -04:00
PartialPrelude.hs rename readMaybe to readish 2012-01-23 17:00:10 -04:00
Path.hs move 2012-03-11 18:12:36 -04:00
RsyncFile.hs Avoid excessive escaping for rsync special remotes that are not accessed over ssh. 2011-11-18 12:53:48 -04:00
SafeCommand.hs add safeSystem 2011-11-09 17:28:35 -04:00
State.hs switch to the strict state monad 2012-01-29 22:55:06 -04:00
TempFile.hs IO exception rework 2012-02-03 16:47:24 -04:00
Touch.hsc cleanup 2012-03-09 20:43:50 -04:00
Url.hs optimize monadic || 2012-03-16 12:28:17 -04:00