Group the global list of files by version, instead of having one flat list for all devices. This removes lots of duplicate protocol.Vectors. Co-authored-by: Jakob Borg <jakob@kastelo.net>
This commit is contained in:
+11
-11
@@ -48,7 +48,7 @@ func globalList(s *db.FileSet) []protocol.FileInfo {
|
||||
var fs []protocol.FileInfo
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
snap.WithGlobal(func(fi db.FileIntf) bool {
|
||||
snap.WithGlobal(func(fi protocol.FileIntf) bool {
|
||||
f := fi.(protocol.FileInfo)
|
||||
fs = append(fs, f)
|
||||
return true
|
||||
@@ -59,7 +59,7 @@ func globalListPrefixed(s *db.FileSet, prefix string) []db.FileInfoTruncated {
|
||||
var fs []db.FileInfoTruncated
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
snap.WithPrefixedGlobalTruncated(prefix, func(fi db.FileIntf) bool {
|
||||
snap.WithPrefixedGlobalTruncated(prefix, func(fi protocol.FileIntf) bool {
|
||||
f := fi.(db.FileInfoTruncated)
|
||||
fs = append(fs, f)
|
||||
return true
|
||||
@@ -71,7 +71,7 @@ func haveList(s *db.FileSet, n protocol.DeviceID) []protocol.FileInfo {
|
||||
var fs []protocol.FileInfo
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
snap.WithHave(n, func(fi db.FileIntf) bool {
|
||||
snap.WithHave(n, func(fi protocol.FileIntf) bool {
|
||||
f := fi.(protocol.FileInfo)
|
||||
fs = append(fs, f)
|
||||
return true
|
||||
@@ -83,7 +83,7 @@ func haveListPrefixed(s *db.FileSet, n protocol.DeviceID, prefix string) []db.Fi
|
||||
var fs []db.FileInfoTruncated
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
snap.WithPrefixedHaveTruncated(n, prefix, func(fi db.FileIntf) bool {
|
||||
snap.WithPrefixedHaveTruncated(n, prefix, func(fi protocol.FileIntf) bool {
|
||||
f := fi.(db.FileInfoTruncated)
|
||||
fs = append(fs, f)
|
||||
return true
|
||||
@@ -95,7 +95,7 @@ func needList(s *db.FileSet, n protocol.DeviceID) []protocol.FileInfo {
|
||||
var fs []protocol.FileInfo
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
snap.WithNeed(n, func(fi db.FileIntf) bool {
|
||||
snap.WithNeed(n, func(fi protocol.FileIntf) bool {
|
||||
f := fi.(protocol.FileInfo)
|
||||
fs = append(fs, f)
|
||||
return true
|
||||
@@ -998,7 +998,7 @@ func TestWithHaveSequence(t *testing.T) {
|
||||
i := 2
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
snap.WithHaveSequence(int64(i), func(fi db.FileIntf) bool {
|
||||
snap.WithHaveSequence(int64(i), func(fi protocol.FileIntf) bool {
|
||||
if f := fi.(protocol.FileInfo); !f.IsEquivalent(localHave[i-1], 0) {
|
||||
t.Fatalf("Got %v\nExpected %v", f, localHave[i-1])
|
||||
}
|
||||
@@ -1049,7 +1049,7 @@ loop:
|
||||
default:
|
||||
}
|
||||
snap := s.Snapshot()
|
||||
snap.WithHaveSequence(prevSeq+1, func(fi db.FileIntf) bool {
|
||||
snap.WithHaveSequence(prevSeq+1, func(fi protocol.FileIntf) bool {
|
||||
if fi.SequenceNo() < prevSeq+1 {
|
||||
t.Fatal("Skipped ", prevSeq+1, fi.SequenceNo())
|
||||
}
|
||||
@@ -1527,8 +1527,8 @@ func TestSequenceIndex(t *testing.T) {
|
||||
|
||||
// Start a routine to walk the sequence index and inspect the result.
|
||||
|
||||
seen := make(map[string]db.FileIntf)
|
||||
latest := make([]db.FileIntf, 0, len(local))
|
||||
seen := make(map[string]protocol.FileIntf)
|
||||
latest := make([]protocol.FileIntf, 0, len(local))
|
||||
var seq int64
|
||||
t0 := time.Now()
|
||||
|
||||
@@ -1539,7 +1539,7 @@ func TestSequenceIndex(t *testing.T) {
|
||||
// update has happened since our last iteration.
|
||||
latest = latest[:0]
|
||||
snap := s.Snapshot()
|
||||
snap.WithHaveSequence(seq+1, func(f db.FileIntf) bool {
|
||||
snap.WithHaveSequence(seq+1, func(f protocol.FileIntf) bool {
|
||||
seen[f.FileName()] = f
|
||||
latest = append(latest, f)
|
||||
seq = f.SequenceNo()
|
||||
@@ -1644,7 +1644,7 @@ func TestUpdateWithOneFileTwice(t *testing.T) {
|
||||
snap := s.Snapshot()
|
||||
defer snap.Release()
|
||||
count := 0
|
||||
snap.WithHaveSequence(0, func(f db.FileIntf) bool {
|
||||
snap.WithHaveSequence(0, func(f protocol.FileIntf) bool {
|
||||
count++
|
||||
return true
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user