FileUtils::makePathRelative() returns wrong path if `path` is relative and `cwd` doesn't match the current working directory
FileUtils::makePathRelative()
makes a given path path
relative to a given directory cwd
. If path
is already relative, the function currently returns the unmodified path
. However, I'd expect a relative path
argument to be relative to the current working directory. I.e., if cwd
doesn't match the current working directory, returning the unmodified path
is not correct, as I understand it.
In my opinion, we should either assume relative path
arguments to be relative to the current working directory (and thus fix the implementation) or completely reject relative path
arguments and throw an exception instead (i.e., require the caller to make path
absolute before calling FileUtils::makePathRelative()
).
Or does anyone think the current behavior is better? If so, please elaborate (and we would still need to at least update documentation).
As this issue exists in both recc
and buildbox-common
, this has also been filed at https://gitlab.com/bloomberg/recc/-/issues/86