1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-10 00:42:40 +01:00
No description
Find a file
epriestley 1fcf7bac4e Compute UTF8 string differences correctly, accounting for combining characters
Summary:
@Afaque_Hussain has done a bunch of utf8 work here; combined with PhutilEditDistanceMatrix we can now do utf8 diffs correctly, in a general way, without a significant performance impact.

Use PhutilEditDistanceMatrix and `phutil_utf8v_combined()` to compute accurate diffs for all (or, at least, most) UTF8 text.

The only thing this doesn't handle completely correctly is lines beginning with combining characters. This is messy/expensive to handle and will probably never actually happen, so I'm punting for now. Nothing should actually break.

The utf8 stuff will be slow, but we only pay for it when we need it.

Test Plan:
Ran unit tests. I changed a few unit tests to use a non-combining character (snowman) for clarity, and some results are different now (since we get combining characters right).

{F44064}

Reviewers: btrahan, Afaque_Hussain

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2379

Differential Revision: https://secure.phabricator.com/D6019
2013-05-23 14:38:09 -07:00
bin Fix "arc" when arcanist/ lives in some directory with spaces in the name 2013-03-06 14:43:18 -08:00
externals Update PEP8 to 1.3.4 2012-12-21 11:34:40 -08:00
resources Update PHP compat info 2013-05-22 11:36:41 -07:00
scripts Update PHP compat info 2013-05-22 11:36:41 -07:00
src Compute UTF8 string differences correctly, accounting for combining characters 2013-05-23 14:38:09 -07:00
.arcconfig Make the behavior of "--load-phutil-library" more explicit 2013-04-29 12:19:15 -07:00
.divinerconfig Make the "this is technical documentation" message of "Arcanist Overview" more clear 2012-08-10 11:37:30 -07:00
.editorconfig Specify config for text editors 2012-11-03 00:13:53 -07:00
.gitignore Changes to Arcanist for libphutil "extensions/" 2013-04-22 14:38:49 -07:00
LICENSE Delete license headers from files 2012-11-05 11:16:24 -08:00
NOTICE Delete license headers from files 2012-11-05 11:16:24 -08:00
README Delete license headers from files 2012-11-05 11:16:24 -08:00

WHAT IS ARCANIST?

Arcanist is the command-line tool for Phabricator. It allows you to interact
with Phabricator installs to send code for review, download patches, transfer
files, view status, make API calls, and various other things. You can find
a complete user guide here:

  http://www.phabricator.com/docs/phabricator/article/Arcanist_User_Guide.html

For more information about Phabricator, see:

  http://phabricator.org/

LICENSE

Arcanist is released under the Apache 2.0 license except as otherwise noted.