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
F13234946: D17128.id41192.diff
Tue, May 21, 4:00 AM
F13234892: D17128.id.diff
Tue, May 21, 3:53 AM
F13233946: D17128.diff
Tue, May 21, 2:40 AM
F13232729: D17128.diff
Tue, May 21, 1:27 AM
F13209439: D17128.diff
Fri, May 17, 12:12 AM
Unknown Object (File)
Sat, May 4, 6:49 PM
Unknown Object (File)
Tue, Apr 30, 11:29 PM
Unknown Object (File)
Sat, Apr 27, 10:32 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