diff options
author | Vadim Markovtsev <vadim@sourced.tech> | 2019-02-11 21:13:44 +0100 |
---|---|---|
committer | Vadim Markovtsev <vadim@sourced.tech> | 2019-02-11 22:57:16 +0100 |
commit | c40fcefddec1d07fb5a06c2173b409f37f7409d1 (patch) | |
tree | 18a8e6da1502054fe49509f4e342398c06f82a95 /utils/merkletrie/noder | |
parent | cd64b4d630b6c2d2b3d72e9615e14f9d58bb5787 (diff) | |
download | go-git-c40fcefddec1d07fb5a06c2173b409f37f7409d1.tar.gz |
Remove Unicode normalization in difftree
Fixes #1057
Signed-off-by: Vadim Markovtsev <vadim@sourced.tech>
Diffstat (limited to 'utils/merkletrie/noder')
-rw-r--r-- | utils/merkletrie/noder/path.go | 10 | ||||
-rw-r--r-- | utils/merkletrie/noder/path_test.go | 8 |
2 files changed, 9 insertions, 9 deletions
diff --git a/utils/merkletrie/noder/path.go b/utils/merkletrie/noder/path.go index e9c905c..1c7ef54 100644 --- a/utils/merkletrie/noder/path.go +++ b/utils/merkletrie/noder/path.go @@ -3,8 +3,6 @@ package noder import ( "bytes" "strings" - - "golang.org/x/text/unicode/norm" ) // Path values represent a noder and its ancestors. The root goes first @@ -80,11 +78,9 @@ func (p Path) Compare(other Path) int { case i == len(p): return -1 default: - form := norm.Form(norm.NFC) - this := form.String(p[i].Name()) - that := form.String(other[i].Name()) - - cmp := strings.Compare(this, that) + // We do *not* normalize Unicode here. CGit doesn't. + // https://github.com/src-d/go-git/issues/1057 + cmp := strings.Compare(p[i].Name(), other[i].Name()) if cmp != 0 { return cmp } diff --git a/utils/merkletrie/noder/path_test.go b/utils/merkletrie/noder/path_test.go index be25444..f49f028 100644 --- a/utils/merkletrie/noder/path_test.go +++ b/utils/merkletrie/noder/path_test.go @@ -156,6 +156,10 @@ func (s *PathSuite) TestCompareMixedDepths(c *C) { func (s *PathSuite) TestCompareNormalization(c *C) { p1 := Path([]Noder{&noderMock{name: norm.Form(norm.NFKC).String("페")}}) p2 := Path([]Noder{&noderMock{name: norm.Form(norm.NFKD).String("페")}}) - c.Assert(p1.Compare(p2), Equals, 0) - c.Assert(p2.Compare(p1), Equals, 0) + c.Assert(p1.Compare(p2), Equals, 1) + c.Assert(p2.Compare(p1), Equals, -1) + p1 = Path([]Noder{&noderMock{name: "TestAppWithUnicodéPath"}}) + p2 = Path([]Noder{&noderMock{name: "TestAppWithUnicodéPath"}}) + c.Assert(p1.Compare(p2), Equals, -1) + c.Assert(p2.Compare(p1), Equals, 1) } |