-
Notifications
You must be signed in to change notification settings - Fork 772
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
[BREAKING] copy*(): use ino to check identical paths #582
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
RyanZim
approved these changes
Jul 17, 2018
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This was referenced Jul 18, 2018
Closed
facebook-github-bot
pushed a commit
to facebook/flipper
that referenced
this pull request
Nov 14, 2018
Summary: Changes are mostly bug fixes, that shouldn't affect us. From the change log: 7.0.1 / 2018-11-07 ------------------ - Fix `removeSync()` on Windows, in some cases, it would error out with `ENOTEMPTY` ([#646](jprichardson/node-fs-extra#646)) - Document `mode` option for `ensureDir*()` ([#587](jprichardson/node-fs-extra#587)) - Don't include documentation files in npm package tarball ([#642](jprichardson/node-fs-extra#642), [#643](jprichardson/node-fs-extra#643)) 7.0.0 / 2018-07-16 ------------------ - **BREAKING:** Refine `copy*()` handling of symlinks to properly detect symlinks that point to the same file. ([#582](jprichardson/node-fs-extra#582)) - Fix bug with copying write-protected directories ([#600](jprichardson/node-fs-extra#600)) - Universalify `fs.lchmod()` ([#596](jprichardson/node-fs-extra#596)) - Add `engines` field to `package.json` ([#580](jprichardson/node-fs-extra#580)) 6.0.1 / 2018-05-09 ------------------ - Fix `fs.promises` `ExperimentalWarning` on Node v10.1.0 ([#578](jprichardson/node-fs-extra#578)) 6.0.0 / 2018-05-01 ------------------ - Drop support for Node.js versions 4, 5, & 7 ([#564](jprichardson/node-fs-extra#564)) - Rewrite `move` to use `fs.rename` where possible ([#549](jprichardson/node-fs-extra#549)) - Don't convert relative paths to absolute paths for `filter` ([#554](jprichardson/node-fs-extra#554)) - `copy*`'s behavior when `preserveTimestamps` is `false` has been OS-dependent since 5.0.0, but that's now explicitly noted in the docs ([#563](jprichardson/node-fs-extra#563)) - Fix subdirectory detection for `copy*` & `move*` ([#541](jprichardson/node-fs-extra#541)) - Handle case-insensitive paths correctly in `copy*` ([#568](jprichardson/node-fs-extra#568)) Reviewed By: jknoxville Differential Revision: D13023753 fbshipit-source-id: 1ecc6f40be4c8146f92dd29ede846b5ab56765ea
78 tasks
larry-x-yu
pushed a commit
to larry-x-yu/ember-try
that referenced
this pull request
Feb 7, 2023
fs-extra brought in a breaking change here: jprichardson/node-fs-extra#582 where it breaks ember-try when copying node_modules/ and there's a symlink in it. The bug would either prevent ember-try from running or cleaning up after try-each. @co-authored-by hjdivad
hjdivad
pushed a commit
to larry-x-yu/ember-try
that referenced
this pull request
Feb 8, 2023
fs-extra brought in a breaking change here: jprichardson/node-fs-extra#582 where it breaks ember-try when copying node_modules/ and there's a symlink in it. The bug would either prevent ember-try from running or cleaning up after try-each. @co-authored-by hjdivad
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
...
copy*()
and long journey of dealing with lots of edge cases and trying to find a proper and yet simple approach to catch as many of those 🐛s as we can!fix #565. Also possibly fix #546 as we don't use
fs.readlink
anymore to check the paths.I guess it's breaking as for the case of symlinks, we throw error with descriptive message instead of silently return.
use
ino
to check if src and dest are the same (Thanks to @TanninOne for bringing that idea). This is beyond checking just paths. Sincefs.lstat
stats the link itself not the actual file that it points to, we have to do an extrafs.stat
to get the actualino
of both src and dest. This essentially relies on node's internal api to give us correctino
s! This also catches the cases like when dest parent is a symlink that points to the parent of src! some 😲 stuff! (we used to only check src and dest themselves not their parents!)check
isSrcSubdir
when checking paths before start copying (achieved the same results with shorter code!)