Page MenuHomePhabricator

Make Phabricator support non-Latin Diffusion URI and non-Latin filenames
Needs ReviewPublic

Authored by huangsj on Jan 2 2017, 1:35 AM.
Tags
None
Referenced Files
F15398437: D17128.id41192.diff
Mon, Mar 17, 12:06 AM
F15398436: D17128.id.diff
Mon, Mar 17, 12:06 AM
F15395601: D17128.diff
Sun, Mar 16, 8:18 AM
F15391496: D17128.id41192.diff
Sat, Mar 15, 10:15 AM
F15391239: D17128.id41192.diff
Sat, Mar 15, 8:56 AM
Unknown Object (File)
Feb 6 2025, 5:05 AM
Unknown Object (File)
Feb 3 2025, 9:01 PM
Unknown Object (File)
Jan 27 2025, 10:12 AM
Subscribers
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

Phabricator lacks support for non-latin repository URIs and non-latin filenames

When I create a new repository named 测试代码库1,the URI displayed in Details -> Clone is "ssh://myphabricator.com/diffusion/1/.git" while the expected one should be
"ssh://myphabricator.com/diffusion/1/测试代码库.git"

The incorrect URI is displayed becuase DiffusionRepositoryController.php uses csprintf('%R' to get displayURI and csprintf('%R' stripped all non-latin characters.

Also, as T11626: Phabricator should properly display non-English characters such as Chinese in diffusion commit page indicates, "读我文件.md" is displayed as "\350\257\273\346\210\221\346\226\207\344\273\266.md".

I find out that the cause of T11626: Phabricator should properly display non-English characters such as Chinese in diffusion commit page is lack of " -c core.quotepath=false " when running git command.
By default core.quotepath is true and git will convert "读我文件.md" to "\350\257\273\346\210\221\346\226\207\344\273\266.md"。

Test Plan

All non-latin characters are displayed properly without quote-escape and being stripped.

Diff Detail

Repository
rP Phabricator
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Removing %R is dangerous.

Adding configuration flags to git is almost certainly not the best approach here.

I agree that I should not add 'core.quotepath=false' to git command.
If I do not want to quote path, I can configure this flag in my Linux installation instead.

And yes, I find out that I do not need to remove %R to make Phabricator support displaying non ascii Diffusion URIs