Hi, when I upgraded to 4.9.1 (13cf2889e73) version, the watchman client doesn't connect to a watchman which was opened via an Administrator Powershell. This seems to be a new behaviour as it used to work just find earlier no matter where I started watchman from. Is the change intentional?
I don't believe that this behavior changed. The model for the watchman service is that we run one server process per user. That server is responsible for handling all watches initiated by that user. We look at the %USERNAME% environmental variable to figure out who you are and then set up a named pipe.
What I suspect happened is that you launched the first instance after upgrading as Administrator and that prevented non-Administrator sessions from accessing the named pipe created by the administrator.
I'd recommend running watchman shutdown-server as Administrator to make the service stop, then run watchman version as non-admin to start it up again without privileges.
Yeah, make sense. I think that when I start vscode, it's extensions spawn watchman, so that's in non-admin mode. But sometimes when watchman doesn't work, I manually fiddle around with it via my ConEmu terminal running Powershell in Administrator mode. So, if I start vscode after fiddling in terminal, it might fail. Sometimes even I don't know what I'm doing, just to get everything running well under Windows 馃槅
Btw, the performance and stability of Watchman has improved a lot. Thanks a lot for the work.
Most helpful comment
I don't believe that this behavior changed. The model for the watchman service is that we run one server process per user. That server is responsible for handling all watches initiated by that user. We look at the %USERNAME% environmental variable to figure out who you are and then set up a named pipe.
What I suspect happened is that you launched the first instance after upgrading as Administrator and that prevented non-Administrator sessions from accessing the named pipe created by the administrator.
I'd recommend running
watchman shutdown-serveras Administrator to make the service stop, then runwatchman versionas non-admin to start it up again without privileges.