assistant: Fix OSX bug that prevented committing changed files to a repository when in indirect mode.

This commit is contained in:
Joey Hess 2013-03-17 17:01:43 -04:00
parent 1760a2e98c
commit 35a0ae334c
4 changed files with 11 additions and 3 deletions

View file

@ -317,7 +317,7 @@ handleAdds delayadd cs = returnWhen (null incomplete) $ do
)
whenM (pure DirWatcher.eventsCoalesce <||> isDirect) $ do
stageSymlink file =<< hashSymlink link
showEndOk
showEndOk
return $ Just $ finishedChange change key
{- Check that the keysource's keyFilename still exists,

View file

@ -47,10 +47,10 @@ canWatch = False
- OTOH, with kqueue, often only one event is received, indicating the most
- recent state of the file. -}
eventsCoalesce :: Bool
#if (WITH_INOTIFY || WITH_FSEVENTS)
#if WITH_INOTIFY
eventsCoalesce = False
#else
#if WITH_KQUEUE
#if (WITH_KQUEUE || WITH_FSEVENTS)
eventsCoalesce = True
#else
eventsCoalesce = undefined

2
debian/changelog vendored
View file

@ -19,6 +19,8 @@ git-annex (4.20130315) UNRELEASED; urgency=low
* webapp: Switch all forms to POST.
* assistant: Avoid syncing with annex-ignored remotes when reconnecting
to the network, or connecting a drive.
* assistant: Fix OSX bug that prevented committing changed files to a
repository when in indirect mode.
-- Joey Hess <joeyh@debian.org> Fri, 15 Mar 2013 00:10:07 -0400

View file

@ -98,3 +98,9 @@ Here it is on a newly-created, empty repo:
add bar [2013-03-13 09:31:51 EDT] chat: git ["--git-dir=/Users/ed/testannex/.git","--work-tree=/Users/ed/testannex","check-attr","-z","--stdin","annex.backend","annex.numcopies","--"]
(checksum...) [2013-03-13 09:31:51 EDT] chat: git ["--git-dir=/Users/ed/testannex/.git","--work-tree=/Users/ed/testannex","cat-file","--batch"]
> This bug affected OSX when indirect mode repositories were used.
> Direct mode repositories were ok.
> I expected to get an event from fsevents when I made the symlink,
> and this event is not arriving (or at least not always). Switched
> the code to use the same method for fsevents as for kqueue and that fixed
> it. [[done]] --[[Joey]]