diff --git a/src/internal/kopia/upload.go b/src/internal/kopia/upload.go index 6a99b9898..d9320f2a6 100644 --- a/src/internal/kopia/upload.go +++ b/src/internal/kopia/upload.go @@ -15,6 +15,7 @@ import ( "github.com/hashicorp/go-multierror" "github.com/kopia/kopia/fs" "github.com/kopia/kopia/fs/virtualfs" + "github.com/kopia/kopia/repo/manifest" "github.com/kopia/kopia/snapshot/snapshotfs" "github.com/pkg/errors" @@ -884,6 +885,17 @@ func inflateDirTree( return nil, errors.Wrap(err, "inflating collection tree") } + baseIDs := make([]manifest.ID, 0, len(baseSnaps)) + for _, snap := range baseSnaps { + baseIDs = append(baseIDs, snap.ID) + } + + logger.Ctx(ctx).Infow( + "merging hierarchies from base snapshots", + "snapshot_ids", + baseIDs, + ) + for _, snap := range baseSnaps { if err = inflateBaseTree(ctx, loader, snap, updatedPaths, roots); err != nil { return nil, errors.Wrap(err, "inflating base snapshot tree(s)") diff --git a/src/internal/kopia/wrapper.go b/src/internal/kopia/wrapper.go index 3e8f5b338..0976bb40e 100644 --- a/src/internal/kopia/wrapper.go +++ b/src/internal/kopia/wrapper.go @@ -178,11 +178,20 @@ func (w Wrapper) makeSnapshotWithRoot( bc = &stats.ByteCounter{} ) + snapIDs := make([]manifest.ID, 0, len(prevSnapEntries)) prevSnaps := make([]*snapshot.Manifest, 0, len(prevSnapEntries)) + for _, ent := range prevSnapEntries { prevSnaps = append(prevSnaps, ent.Manifest) + snapIDs = append(snapIDs, ent.ID) } + logger.Ctx(ctx).Infow( + "using snapshots for kopia-assisted incrementals", + "snapshot_ids", + snapIDs, + ) + err := repo.WriteSession( ctx, w.c, diff --git a/src/internal/operations/backup.go b/src/internal/operations/backup.go index 7f562321c..89dbb340d 100644 --- a/src/internal/operations/backup.go +++ b/src/internal/operations/backup.go @@ -340,6 +340,8 @@ func consumeBackupDataCollections( for _, m := range mans { paths := make([]*path.Builder, 0, len(m.Reasons)) + services := map[string]struct{}{} + categories := map[string]struct{}{} for _, reason := range m.Reasons { pb, err := builderFromReason(tenantID, reason) @@ -348,12 +350,34 @@ func consumeBackupDataCollections( } paths = append(paths, pb) + services[reason.Service.String()] = struct{}{} + categories[reason.Category.String()] = struct{}{} } bases = append(bases, kopia.IncrementalBase{ Manifest: m.Manifest, SubtreePaths: paths, }) + + svcs := make([]string, 0, len(services)) + for k := range services { + svcs = append(svcs, k) + } + + cats := make([]string, 0, len(categories)) + for k := range categories { + cats = append(cats, k) + } + + logger.Ctx(ctx).Infow( + "using base for backup", + "snapshot_id", + m.ID, + "services", + svcs, + "categories", + cats, + ) } return bu.BackupCollections(ctx, bases, cs, tags, isIncremental)