Repository metrics
- Stars
- (33,171 stars)
- PR merge metrics
- (Avg merge 5d 11h) (35 merged PRs in 30d)
Description
Given directory tree
./
a/
b/
e -> a/b
e/.. will refer to a, not .. However, since Directory::create lexically canonicalizes path, running Directory::create("e/..", Directory::CreateDirectories::No) will result in . being opened.
This results in inconsistency between our tar and GNU's tar if ran from . with arguments -cv e/.. -f /dev/null. I'm sure this is not the only place where we assume LexicalPath::canonicalize does not change what path refers to.
Although such resolution is not the most intuitive behavior, I think it should be fixed for the sake of consistency.
I am planning on addressing situation with paths altogether, so I made this issue mostly as a reminder for myself.