Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test: New multi-root aware file watcher #29478

Closed
41 tasks done
Tyriar opened this issue Jun 26, 2017 · 3 comments
Closed
41 tasks done

Test: New multi-root aware file watcher #29478

Tyriar opened this issue Jun 26, 2017 · 3 comments

Comments

@Tyriar
Copy link
Member

Tyriar commented Jun 26, 2017

Test for #28947

Complexity: 5

  • Linux 64 Bits - @isidorn
    • Opened tab is updated when modified outside of VS Code
    • Explorer updates when file events occur outside of VS Code (eg. another editor/git checkout)
    • Adding/removing root folders does not confuse the watcher and events are reported for newly added folders (note: when you transition back to single root, we stop using NSFW unless the files.useExperimentalFileWatcher is set to true)
    • Supports files.watcherExclude setting in different folders to ignore events
    • Symlinks are followed (e.g. you get file events for symlinked folder contents)
    • Prevents circular symlinks (e.g. no endless loop when you have this on disk)
    • Supports large folders - what happens when the file watch limit is hit and you're hit with an ENOSPC? (see here for how to configure this)
    • Supports remote file systems (e.g. use Parallels to see folders from Windows and/or macOS and verify events are forwarded through)
  • Linux 32 Bits - @joaomoreno
    • Opened tab is updated when modified outside of VS Code
    • Explorer updates when file events occur outside of VS Code (eg. another editor/git checkout)
    • Adding/removing root folders does not confuse the watcher and events are reported for newly added folders (note: when you transition back to single root, we stop using NSFW unless the files.useExperimentalFileWatcher is set to true)
    • Supports files.watcherExclude setting in different folders to ignore events
    • Symlinks are followed (e.g. you get file events for symlinked folder contents)
    • Prevents circular symlinks (e.g. no endless loop when you have this on disk)
    • Supports large folders - what happens when the file watch limit is hit and you're hit with an ENOSPC? (see here for how to configure this)
    • Supports remote file systems (e.g. use Parallels to see folders from Windows and/or macOS and verify events are forwarded through)
  • macOS - @sandy081
    • Opened tab is updated when modified outside of VS Code
    • Explorer updates when file events occur outside of VS Code (eg. another editor/git checkout)
    • Adding/removing root folders does not confuse the watcher and events are reported for newly added folders (note: when you transition back to single root, we stop using NSFW unless the files.useExperimentalFileWatcher is set to true)
    • Supports files.watcherExclude setting in different folders to ignore events
    • Symlinks are followed (e.g. you get file events for symlinked folder contents)
    • Prevents circular symlinks (e.g. no endless loop when you have this on disk)
    • Supports folders with unicode characters in their name (see OS X 10.11: system calls return non-normalized unicode strings nodejs/node#2165 for the glory details on unicode normalization on HFS and node)
    • Supports opening paths with wrong casing - eg. /foo is on disk but /FOO is the folder that is opened (via the command line) and file events continue to work
    • Supports remote file systems (e.g. use Parallels to see folders from Windows and/or Linux and verify events are forwarded through)
  • Windows - @mjbvz
    • Opened tab is updated when modified outside of VS Code
    • Explorer updates when file events occur outside of VS Code (eg. another editor/git checkout)
    • Adding/removing root folders does not confuse the watcher and events are reported for newly added folders (note: when you transition back to single root, we stop using NSFW unless the files.useExperimentalFileWatcher is set to true)
    • Supports files.watcherExclude setting in different folders to ignore events
    • Symlinks are followed (e.g. you get file events for symlinked folder contents)
    • Prevents circular symlinks (e.g. no endless loop when you have this on disk)
    • Supports virtual drives (setup via subst command)
    • Supports UNC mounted filesystems (there is a notation to do this via localhost: \\localhost\c$\my_dir)
    • Supports OneDrive folders
    • Briefly verify watcher supports Windows 7
    • Supports opening paths with wrong casing - eg. /foo is on disk but /FOO is the folder that is opened (via the command line) and file events continue to work
    • Supports remote file systems (e.g. use Parallels to see folders from macOS and/or Linux and verify events are forwarded through)

https://github.com/Axosoft/nsfw has been introduced behind a setting that allows file watching to use the same underlying library for all OS's as well as being multi-root aware. The file watcher can be enabled by using the setting "files.useExperimentalFileWatcher": true, or by just opening multiple folders.

The major test cases are highlighted above, make sure you refresh as you're checking a checkbox off to prevent update conflicts. Most of which will involve modifying a file and observing the file event propagates.

You can add a multi-root folder by opening a folder in VS Code and then using the File: Add Root Folder... command. This adds the relevant settings to your user settings. Also be sure to launch VS Code using code-insiders --verbose to get file watcher events in the devtools console, this will help verify events are firing correctly and will be very valuable in debugging issues. To verify you are using the new watcher, check the console for this entry:

image

@Tyriar Tyriar added this to the June 2017 milestone Jun 26, 2017
@joaomoreno joaomoreno changed the title Test new multi-root aware file watcher Test: New multi-root aware file watcher Jun 27, 2017
@isidorn
Copy link
Contributor

isidorn commented Jun 27, 2017

I am blocked on #29591
Edit: works now, I was opening files on shared folders for which file events do not work, but Joao captured this in another issue

@sandy081
Copy link
Member

I have similar issues
#29438
#29605

@sandy081
Copy link
Member

Tried first couple of points and nothing works for me

  - [ ] Opened tab is updated when modified outside of VS Code
  - [ ] Explorer updates when file events occur outside of VS Code (eg. another editor/`git checkout`)
  - [ ] Adding/removing root folders does not confuse the watcher and events are reported for newly added folders (note: when you transition back to single root, we stop using NSFW unless the `files.useExperimentalFileWatcher` is set to `true`)

#29438

@vscodebot vscodebot bot locked and limited conversation to collaborators Nov 17, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants