MCPcopy
hub / github.com/kopia/kopia / compareDirectoryEntries

Method compareDirectoryEntries

internal/diff/diff.go:299–325  ·  view source on GitHub ↗
(ctx context.Context, entries1, entries2 []fs.Entry, dirPath string)

Source from the content-addressed store, hash-verified

297}
298
299func (c *Comparer) compareDirectoryEntries(ctx context.Context, entries1, entries2 []fs.Entry, dirPath string) error {
300 e1byname := map[string]fs.Entry{}
301 for _, e1 := range entries1 {
302 e1byname[e1.Name()] = e1
303 }
304
305 for _, e2 := range entries2 {
306 entryName := e2.Name()
307 if err := c.compareEntry(ctx, e1byname[entryName], e2, dirPath+"/"+entryName); err != nil {
308 return errors.Wrapf(err, "error comparing %v", entryName)
309 }
310
311 delete(e1byname, entryName)
312 }
313
314 // at this point e1byname only has entries present in entries1 but not entries2, those are the deleted ones
315 for _, e1 := range entries1 {
316 entryName := e1.Name()
317 if _, ok := e1byname[entryName]; ok {
318 if err := c.compareEntry(ctx, e1, nil, dirPath+"/"+entryName); err != nil {
319 return errors.Wrapf(err, "error comparing %v", entryName)
320 }
321 }
322 }
323
324 return nil
325}
326
327func (c *Comparer) compareFiles(ctx context.Context, f1, f2 fs.File, fname string) error {
328 if c.DiffCommand == "" {

Callers 1

compareDirectoriesMethod · 0.95

Calls 2

compareEntryMethod · 0.95
NameMethod · 0.65

Tested by

no test coverage detected