{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/20912","repository_url":"https://api.github.com/repos/JuliaLang/julia","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/20912/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/20912/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/20912/events","html_url":"https://github.com/JuliaLang/julia/issues/20912","id":212157239,"number":20912,"title":"joinpath should not throw. period.","user":{"login":"StefanKarpinski","id":153596,"avatar_url":"https://avatars1.githubusercontent.com/u/153596?v=3","gravatar_id":"","url":"https://api.github.com/users/StefanKarpinski","html_url":"https://github.com/StefanKarpinski","followers_url":"https://api.github.com/users/StefanKarpinski/followers","following_url":"https://api.github.com/users/StefanKarpinski/following{/other_user}","gists_url":"https://api.github.com/users/StefanKarpinski/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanKarpinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanKarpinski/subscriptions","organizations_url":"https://api.github.com/users/StefanKarpinski/orgs","repos_url":"https://api.github.com/users/StefanKarpinski/repos","events_url":"https://api.github.com/users/StefanKarpinski/events{/privacy}","received_events_url":"https://api.github.com/users/StefanKarpinski/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-03-06T15:31:32Z","updated_at":"2017-03-06T16:39:19Z","closed_at":null,"body":"As observed in https://github.com/JuliaLang/julia/issues/20695, `joinpath` causes an error on Windows in situations where a git URL looks like a relative path with a drive specification – since the drives of the two arguments don't match, an error is thrown. That specific problem can be worked around, but the deeper problem is that `joinpath` throws in the first place. It's fundamentally just a string manipulation function and shouldn't throw errors. However, that leaves the question of what should happen when the second argument to `joinpath` is a relative with a drive that doesn't match that of the first argument."},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/284453483","html_url":"https://github.com/JuliaLang/julia/issues/20912#issuecomment-284453483","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/20912","id":284453483,"user":{"login":"vtjnash","id":330950,"avatar_url":"https://avatars2.githubusercontent.com/u/330950?v=3","gravatar_id":"","url":"https://api.github.com/users/vtjnash","html_url":"https://github.com/vtjnash","followers_url":"https://api.github.com/users/vtjnash/followers","following_url":"https://api.github.com/users/vtjnash/following{/other_user}","gists_url":"https://api.github.com/users/vtjnash/gists{/gist_id}","starred_url":"https://api.github.com/users/vtjnash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vtjnash/subscriptions","organizations_url":"https://api.github.com/users/vtjnash/orgs","repos_url":"https://api.github.com/users/vtjnash/repos","events_url":"https://api.github.com/users/vtjnash/events{/privacy}","received_events_url":"https://api.github.com/users/vtjnash/received_events","type":"User","site_admin":false},"created_at":"2017-03-06T16:39:19Z","updated_at":"2017-03-06T16:39:19Z","body":"It can probably just return the second object. Answering the question: \"relative to a relative path B on drive A, what is the full path to the relative path C on drive D\", is probably most sensibly \"the relative path D on drive C\" (with the first clause adding no useful information). So `joinpath(\"A:B\", \"C:D\")` would reasonably be `\"C:D\"`. The downside is that the commutativity is wrong, if you treat `joinpath` as equivalent to a sequence of `cd` operations, but I think we can live with that. Also, fwiw, that's python's interpretation:\r\n```\r\n> \"C:\\Program Files\\Python36\\python.exe\"\r\nPython 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32\r\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\r\n>>> import os\r\n>>> os.path.join(\"A:B\", \"C:D\")\r\n'C:D'\r\n```\r\n\r\nalso, ref https://github.com/JuliaLang/julia/issues/5123"}}
{"actor":{"display_login":"vtjnash"}}