Upstream merge.
Exclude revert to paths.join() and ; fix.
Always replace // with / in paths.