Since version 2.2 shipped, Mercurial started shipping fsmonitor as a built-in extension, so we can drop our hgwatchman stuff in favor of it. Also, we should take a look at newer builds of watchman since ours is over a year old at this point.
Created attachment 8871551 [details] [diff] [review] update watchman and switch over to using fsmonitor I want to test this locally for awhile before committing to it (and you can see that I have it disabled by default still), but I at least wanted to get this attached so you could add any other feedback you wanted about the defaults to ship fsmonitor with.
Attachment #8871551 - Flags: feedback?(gps)
Comment on attachment 8871551 [details] [diff] [review] update watchman and switch over to using fsmonitor Review of attachment 8871551 [details] [diff] [review]: ----------------------------------------------------------------- This seems like an obvious step in the right direction. Also, TIL about helpers.nsi. OMG. Nuke it from orbit.
Attachment #8871551 - Flags: feedback?(gps) → feedback+
I tried enabling fsmonitor locally today but am getting the following error: warning: Watchman unavailable: watchman command error: unable to resolve root c:\Users\Ryan\repos\mozilla-build: "c:\Users\Ryan\repos\mozilla-build" resolved to "C:/Users/Ryan/repos/mozilla-build" but we were unable to examine "c:\Users\Ryan\repos\mozilla-build" using strict case sensitive rules. Please check each component of the path and make sure that that path exactly matches the correct case of the files on your filesystem. Not sure what's going on. Yes, that path is correct.
This is also using a current CI build from upstream. Bottom line is that I think we're going to be playing whack-a-mole trying to get a build that works decently. Windows support upstream clearly isn't a big priority.
If you want to mess around with it locally, here's an up-to-date test build: https://drive.google.com/open?id=0BxocUovXDf0iYnF5Y0ltSURIdGc
I bet fsmonitor and watchman work in a cmd.exe environment. I suspect our msys environment with Unix style paths is invalidating an assertion. It is also possible that ui.slash=true is interfering. Whatever the cause it's worthy of a bug report at https://bz.mercurial-scm.org/enter_bug.cgi?component=fsmonitor. Facebook is eager to have more Watchman testing on Windows. So I suspect if you let them know this is blocking Mozilla deploying things that someone will pay attention :)
I did check whether ui.slash mattered last night and I got the same failure either way. Filed as upstream bug #5588.
Created attachment 8874992 [details] [diff] [review] update watchman and switch over to using fsmonitor Same as the last patch, just a slightly newer version of fsmonitor. Given that I'm pretty sure the fix for the issues in this bug are going to come from somewhere upstream, I think we can go ahead and land this as-is for now with a new bug for shipping it enabled by default when ready.
I should probably note that the one change of significance from the prior patch is that I'm explicitly removing watchman.pdb during packaging now. It's nearly 30MB in size and added 3MB to the size of the installer by itself. If someone *really* wants it for some reason, they can always grab the zip archive from the mozilla-build repo and extract it from there.
Comment on attachment 8874992 [details] [diff] [review] update watchman and switch over to using fsmonitor Review of attachment 8874992 [details] [diff] [review]: ----------------------------------------------------------------- Looks good. Now we just need to get fsmonitor working...
Attachment #8874992 - Flags: review?(gps) → review+
The old version currently shipping in 2.2.0 happens to behave with fsmonitor, so I think what I'll do is leave the version we ship intact for now (with the other changes from this bug still being made) and leave fsmonitor off by default. But at least if people do want to enable it, they should be able to do so without things being completely broken. Then we can file a bug for shipping it enabled by default once the upstream issues get sorted out. Now that MozillaBuild is significantly easier to package than it used to be, shipping a newer version isn't as big of a deal at least.
Summary: Update watchman in MozillaBuild → Update MozillaBuild to use fsmonitor instead of hgwatchman (still disabled by default)
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/mozilla-build/rev/fe50867d56bb Update MozillaBuild to use fsmonitor instead of hgwatchman (still disabled by default). r=gps
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.