Skip to content
This repository has been archived by the owner on Sep 6, 2021. It is now read-only.

Console contains "Unable to stat changed path" warnings from inside .git folder after big checkouts #6803

Open
peterflynn opened this issue Feb 7, 2014 · 3 comments
Assignees

Comments

@peterflynn
Copy link
Member

I've seen this several times and it was also reported in #6799.

  1. Open a project in Brackets
  2. Using git on the command line, switch between two widely different branches in the project
  3. Look at Brackets console log

Result:
A dozen or so warnings of the form "Unable to stat changed path: .git... NotFound"

Expected:
We're supposed to ignore churn inside the .git folder, so this is confusing and perhaps unnecessarily scary-looking.

As best I can tell it's actually harmless though: AppShellFileSystem._enqueueChange() fails to stat and then sends the change along to FileSystem anyway, where it is promptly dropped on the floor since that folder is filtered out by the watch-root's filter.

@peterflynn
Copy link
Member Author

We could fix this by passing the filter down into the impl so it can ignore paths like this. This should also increase efficiency since we're not wasting time running stat() calls (failed or otherwise) for churn inside .git. But we'd need to make sure it doesn't change the semantics of what happens when the user explicitly opens a file that's been filtered out.

@njx
Copy link
Contributor

njx commented Feb 10, 2014

Low pri to @peterflynn

peterflynn added a commit that referenced this issue Mar 27, 2014
Interim fix for #6803: don't warn when Node-side watcher stat fails
@peterflynn
Copy link
Member Author

PR #7332 eliminates the warning entirely for now. I view that as an interim fix since, ideally:

  1. We wouldn't waste time trying to stat() churn inside folders like .git (which btw can churn quite a bit during a big fetch/pull/commit/etc.).
  2. We still would warn if we failed to stat() something that was not filtered out of the watch root -- since failing to stat() means we drop the change notification on the floor, it's actually a fairly significant error in the not-filtered case.

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

2 participants