diff --git a/src/cli/backup/onedrive.go b/src/cli/backup/onedrive.go index 0614bbad7..1f14a8213 100644 --- a/src/cli/backup/onedrive.go +++ b/src/cli/backup/onedrive.go @@ -67,6 +67,12 @@ func addOneDriveCommands(cmd *cobra.Command) *cobra.Command { flags.AddUserFlag(c) flags.AddGenericBackupFlags(c) + fs.BoolVar( + &flags.UseDeltaTreeFV, + flags.UseDeltaTreeFN, + false, + "process backups using the delta tree instead of standard enumeration") + cobra.CheckErr(fs.MarkHidden(flags.UseDeltaTreeFN)) case listCommand: c, fs = utils.AddCommand(cmd, oneDriveListCmd()) diff --git a/src/cli/flags/onedrive.go b/src/cli/flags/onedrive.go index c91c57d43..8dd9f982b 100644 --- a/src/cli/flags/onedrive.go +++ b/src/cli/flags/onedrive.go @@ -12,6 +12,8 @@ const ( FileCreatedBeforeFN = "file-created-before" FileModifiedAfterFN = "file-modified-after" FileModifiedBeforeFN = "file-modified-before" + + UseDeltaTreeFN = "use-delta-tree" ) var ( @@ -22,6 +24,8 @@ var ( FileCreatedBeforeFV string FileModifiedAfterFV string FileModifiedBeforeFV string + + UseDeltaTreeFV bool ) // AddOneDriveDetailsAndRestoreFlags adds flags that are common to both the diff --git a/src/cli/utils/options.go b/src/cli/utils/options.go index f5d62ee9e..ec61d866d 100644 --- a/src/cli/utils/options.go +++ b/src/cli/utils/options.go @@ -27,6 +27,7 @@ func Control() control.Options { opt.ToggleFeatures.DisableDelta = flags.DisableDeltaFV opt.ToggleFeatures.DisableSlidingWindowLimiter = flags.DisableSlidingWindowLimiterFV opt.ToggleFeatures.ExchangeImmutableIDs = flags.EnableImmutableIDFV + opt.ToggleFeatures.UseDeltaTree = flags.UseDeltaTreeFV opt.Parallelism.ItemFetch = flags.FetchParallelismFV return opt diff --git a/src/pkg/control/options.go b/src/pkg/control/options.go index e4b2eb197..d7f15f164 100644 --- a/src/pkg/control/options.go +++ b/src/pkg/control/options.go @@ -109,4 +109,7 @@ type Toggles struct { // Setting this flag switches exchange backups to fallback to the default token // bucket rate limiter. DisableSlidingWindowLimiter bool `json:"disableSlidingWindowLimiter"` + + // see: https://github.com/alcionai/corso/issues/4688 + UseDeltaTree bool `json:"useDeltaTree"` }