diff --git a/cmd/restic/cmd_diff.go b/cmd/restic/cmd_diff.go index b15882b09..6793184b1 100644 --- a/cmd/restic/cmd_diff.go +++ b/cmd/restic/cmd_diff.go @@ -191,13 +191,13 @@ func (c *Comparer) printDir(ctx context.Context, mode string, stats *DiffStat, b if node.Type == "dir" { err := c.printDir(ctx, mode, stats, blobs, name, *node.Subtree) - if err != nil { + if err != nil && err != context.Canceled { Warnf("error: %v\n", err) } } } - return nil + return ctx.Err() } func (c *Comparer) collectDir(ctx context.Context, blobs restic.BlobSet, id restic.ID) error { @@ -216,13 +216,13 @@ func (c *Comparer) collectDir(ctx context.Context, blobs restic.BlobSet, id rest if node.Type == "dir" { err := c.collectDir(ctx, blobs, *node.Subtree) - if err != nil { + if err != nil && err != context.Canceled { Warnf("error: %v\n", err) } } } - return nil + return ctx.Err() } func uniqueNodeNames(tree1, tree2 *restic.Tree) (tree1Nodes, tree2Nodes map[string]*restic.Node, uniqueNames []string) { @@ -316,7 +316,7 @@ func (c *Comparer) diffTree(ctx context.Context, stats *DiffStatsContainer, pref } else { err = c.diffTree(ctx, stats, name, *node1.Subtree, *node2.Subtree) } - if err != nil { + if err != nil && err != context.Canceled { Warnf("error: %v\n", err) } } @@ -330,7 +330,7 @@ func (c *Comparer) diffTree(ctx context.Context, stats *DiffStatsContainer, pref if node1.Type == "dir" { err := c.printDir(ctx, "-", &stats.Removed, stats.BlobsBefore, prefix, *node1.Subtree) - if err != nil { + if err != nil && err != context.Canceled { Warnf("error: %v\n", err) } } @@ -344,14 +344,14 @@ func (c *Comparer) diffTree(ctx context.Context, stats *DiffStatsContainer, pref if node2.Type == "dir" { err := c.printDir(ctx, "+", &stats.Added, stats.BlobsAfter, prefix, *node2.Subtree) - if err != nil { + if err != nil && err != context.Canceled { Warnf("error: %v\n", err) } } } } - return nil + return ctx.Err() } func runDiff(ctx context.Context, opts DiffOptions, gopts GlobalOptions, args []string) error {