Handle relative source path in create_link #identical?#701
Merged
Conversation
When creating a symlink, the source path may be relative to the destination. If this is the case, #identical? fails becase it interprets it as an absolute path. Update #identical to resolve the source path before comparing.
ab39c09 to
ae1cea9
Compare
This file contains hidden or 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
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.
🌈🌈🌈
Rationale
The
create_linkaction's documented behaviour is to interpret thesourceparameter as a relative path. While not explicitly stated, the implementation is that the source path is relative to the destination. However,#identical?treats the source pathrenderas an absolute path when callingFile.identical?.Changes
Update
#identical?to interpret the source path relative to the destination.Alter
CreateLinkspec to allow variations in the source path to be tested, add spec testing#identical?for a relative source path.Discussion
You may or may not wish to accept the refactoring to the
CreateLinkspec. It felt like pulling the construction of the action apart like this was the cleanest way to allow this kind of variation between examples, but it is a broader change.