aboutsummaryrefslogtreecommitdiffstats
path: root/utils/merkletrie/noder
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2019-02-14 12:35:30 +0100
committerGitHub <noreply@github.com>2019-02-14 12:35:30 +0100
commitdb6c41c156481962abf9a55a324858674c25ab08 (patch)
tree6f1b155a059fd9f623473d61305a81ab5efa596b /utils/merkletrie/noder
parent4d8bd13a73d6efd41b6be0b2eba5130c498fae0d (diff)
parentc40fcefddec1d07fb5a06c2173b409f37f7409d1 (diff)
downloadgo-git-db6c41c156481962abf9a55a324858674c25ab08.tar.gz
Merge pull request #1065 from vmarkovtsev/fix-unicodev4.10.0
Remove Unicode normalization in difftree
Diffstat (limited to 'utils/merkletrie/noder')
-rw-r--r--utils/merkletrie/noder/path.go10
-rw-r--r--utils/merkletrie/noder/path_test.go8
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)
}