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

fix: Trust the filesystem to move files #195

Merged
merged 2 commits into from May 1, 2023
Merged

Conversation

wraithgar
Copy link
Member

@wraithgar wraithgar commented May 1, 2023

The original lib/util/move-file.js has gone through many iterations over
the last several years. It no longer represents anything close to the
original intent.

Most of the functionality it was originally trying to work around is now
something that @npmcli/fs#moveFile does, and better. Trying to move a
file by creating a hard link and unlinking the old file is an
optimization best left to the operating system when you ask it to move a
file. In fact the @npmcli/fs#moveFile method tries a rename first,
which is the best choice all around. It also supports an "overwrite:
false" flag so we can still error out if the destination already exists.

This PR removes all of the old legacy code.

Closes #155

@wraithgar wraithgar requested a review from a team as a code owner May 1, 2023 20:25
@wraithgar wraithgar requested a review from fritzy May 1, 2023 20:25
lib/content/write.js Outdated Show resolved Hide resolved
The original lib/util/move-file.js has gone through many iterations over
the last several years.  It no longer represents anything close to the
original intent.

Most of the functionality it was originally trying to work around is now
something that `@npmcli/fs#moveFile` does, and better.  Trying to move a
file by creating a hard link and unlinking the old file is an
optimization best left to the operating system when you ask it to move a
file.  In fact the `@npmcli/fs#moveFile` method tries a *rename* first,
which is the best choice all around.  It also supports an "overwrite:
false" flag so we can still error out if the destination already exists.

This PR removes all of the old legacy code.
@wraithgar wraithgar merged commit 11fc035 into main May 1, 2023
17 checks passed
@wraithgar wraithgar deleted the gar/let-the-os-move branch May 1, 2023 20:36
@github-actions github-actions bot mentioned this pull request May 1, 2023
thunder-coding added a commit to termux/termux-packages that referenced this pull request May 27, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
thunder-coding added a commit to termux/termux-packages that referenced this pull request Jun 1, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
thunder-coding added a commit to termux/termux-packages that referenced this pull request Jun 3, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
thunder-coding added a commit to termux/termux-packages that referenced this pull request Jun 8, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
termux-pacman-bot added a commit to termux-pacman/termux-packages that referenced this pull request Jun 8, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
WTNLXTBL added a commit to WTNLXTBL/termux-packages that referenced this pull request Jun 8, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
WTNLXTBL added a commit to WTNLXTBL/termux-packages-pacman that referenced this pull request Jun 8, 2023
cacache patch has been removed as it is no longer needed npm/cacache#195
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] cacache doesn't work on Android
2 participants