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
Unknown Object (File)
Wed, Mar 20, 10:24 PM
Unknown Object (File)
Wed, Mar 20, 10:24 PM
Unknown Object (File)
Wed, Mar 20, 10:24 PM
Unknown Object (File)
Wed, Mar 6, 6:06 AM
Unknown Object (File)
Feb 16 2024, 12:13 PM
Unknown Object (File)
Feb 3 2024, 1:43 PM
Unknown Object (File)
Jan 31 2024, 9:14 PM
Unknown Object (File)
Jan 16 2024, 3:27 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