summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-12-27 16:09:11 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-12-27 16:09:11 -0400
commita76027270868af50cb034c175e849380bb77cc94 (patch)
tree994ed27d0ac5f6894c8f142d10cd76d6b345da33
parent3a7570938c5c7c0aab815995fa2fbb4e82ba3688 (diff)
blog for the day
-rw-r--r--doc/design/assistant/blog/day_158__fsevents.mdwn20
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_158__fsevents.mdwn b/doc/design/assistant/blog/day_158__fsevents.mdwn
new file mode 100644
index 000000000..472b6c2be
--- /dev/null
+++ b/doc/design/assistant/blog/day_158__fsevents.mdwn
@@ -0,0 +1,20 @@
+Investigated using the OSX fsevents API to detect when files are modified,
+so they can be committed when using direct mode. There's a
+[haskell library](http://hackage.haskell.org/package/hfsevents-0.1.3)
+and even a [sample directory watching program](http://hackage.haskell.org/package/hobbes).
+Initial tests look good...
+
+Using fsevents will avoid kqueue's problems with needing enough file
+descriptors to open every subdirectory. kqueue is a rather poor match for
+git-annex's needs, really. It does not seem to provide events for file
+modifications at all, unless every *file* is individually opened. While I
+dislike leaving the BSD's out, they need a better interface to be perfectly
+supported by git-annex, and kqueue will still work for indirect mode
+repositories.
+
+----
+
+Got the assistant to use fsevents. It seems to work well!
+
+The only problem I know of is that it doesn't yet handle whole directory
+renames. That should be easy to fix later.