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.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too