From 5f4138f1bcfe1f3d32c626b4116a5f146fb5003f Mon Sep 17 00:00:00 2001 From: web3-bot Date: Tue, 1 Jun 2021 16:54:06 +0000 Subject: [PATCH 1/2] run gofmt -s This commit was moved from ipfs/go-merkledag@9fd869bbf68c51259efae29e2c3fbb07253fe3b8 --- ipld/merkledag/dagutils/diffenum_test.go | 36 ++++++++++++------------ ipld/merkledag/merkledag_test.go | 10 +++---- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ipld/merkledag/dagutils/diffenum_test.go b/ipld/merkledag/dagutils/diffenum_test.go index c4181073f..7400d2d31 100644 --- a/ipld/merkledag/dagutils/diffenum_test.go +++ b/ipld/merkledag/dagutils/diffenum_test.go @@ -46,61 +46,61 @@ func mkGraph(desc map[string]ndesc) map[string]ipld.Node { } var tg1 = map[string]ndesc{ - "a1": ndesc{ + "a1": { "foo": "b", }, - "b": ndesc{}, - "a2": ndesc{ + "b": {}, + "a2": { "foo": "b", "bar": "c", }, - "c": ndesc{}, + "c": {}, } var tg2 = map[string]ndesc{ - "a1": ndesc{ + "a1": { "foo": "b", }, - "b": ndesc{}, - "a2": ndesc{ + "b": {}, + "a2": { "foo": "b", "bar": "c", }, - "c": ndesc{"baz": "d"}, - "d": ndesc{}, + "c": {"baz": "d"}, + "d": {}, } var tg3 = map[string]ndesc{ - "a1": ndesc{ + "a1": { "foo": "b", "bar": "c", }, - "b": ndesc{}, - "a2": ndesc{ + "b": {}, + "a2": { "foo": "b", "bar": "d", }, - "c": ndesc{}, - "d": ndesc{}, + "c": {}, + "d": {}, } var tg4 = map[string]ndesc{ - "a1": ndesc{ + "a1": { "key1": "b", "key2": "c", }, - "a2": ndesc{ + "a2": { "key1": "b", "key2": "d", }, } var tg5 = map[string]ndesc{ - "a1": ndesc{ + "a1": { "key1": "a", "key2": "b", }, - "a2": ndesc{ + "a2": { "key1": "c", "key2": "d", }, diff --git a/ipld/merkledag/merkledag_test.go b/ipld/merkledag/merkledag_test.go index 3ff6c3f09..ec4b1f163 100644 --- a/ipld/merkledag/merkledag_test.go +++ b/ipld/merkledag/merkledag_test.go @@ -350,11 +350,11 @@ func TestFetchGraphWithDepthLimit(t *testing.T) { } tests := []testcase{ - testcase{1, 4}, - testcase{0, 1}, - testcase{-1, 6}, - testcase{2, 6}, - testcase{3, 6}, + {1, 4}, + {0, 1}, + {-1, 6}, + {2, 6}, + {3, 6}, } testF := func(t *testing.T, tc testcase) { From d229bf7b9a2805bbbbd30b04e06491820fa0d508 Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Mon, 19 Jul 2021 20:48:52 -0700 Subject: [PATCH 2/2] fix: make MergeDiffs deterministic This commit was moved from ipfs/go-merkledag@5729b259f6618d7a7cddc9aec80aea84493a7617 --- ipld/merkledag/dagutils/diff.go | 18 +++++++++++------- ipld/merkledag/dagutils/diff_test.go | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ipld/merkledag/dagutils/diff.go b/ipld/merkledag/dagutils/diff.go index 9fef3f964..6c80f0156 100644 --- a/ipld/merkledag/dagutils/diff.go +++ b/ipld/merkledag/dagutils/diff.go @@ -176,24 +176,28 @@ type Conflict struct { // Changes involved (which share the same path). func MergeDiffs(a, b []*Change) ([]*Change, []Conflict) { paths := make(map[string]*Change) - for _, c := range a { + for _, c := range b { paths[c.Path] = c } var changes []*Change var conflicts []Conflict - for _, changeB := range b { - if changeA, ok := paths[changeB.Path]; ok { + // NOTE: we avoid iterating over maps here to ensure iteration order is determistic. We + // include changes from a first, then b. + for _, changeA := range a { + if changeB, ok := paths[changeA.Path]; ok { conflicts = append(conflicts, Conflict{changeA, changeB}) } else { - changes = append(changes, changeB) + changes = append(changes, changeA) } - delete(paths, changeB.Path) + delete(paths, changeA.Path) } - for _, c := range paths { - changes = append(changes, c) + for _, c := range b { + if _, ok := paths[c.Path]; ok { + changes = append(changes, c) + } } return changes, conflicts diff --git a/ipld/merkledag/dagutils/diff_test.go b/ipld/merkledag/dagutils/diff_test.go index 9cafe13bc..7b90bd93a 100644 --- a/ipld/merkledag/dagutils/diff_test.go +++ b/ipld/merkledag/dagutils/diff_test.go @@ -33,9 +33,9 @@ func TestMergeDiffs(t *testing.T) { } expect := []*Change{ - changesB[1], changesA[0], changesA[2], + changesB[1], } for i, change := range changes {