From d45842fe5cb37a3d6b63f3a1e5292ec4c2ac91af Mon Sep 17 00:00:00 2001 From: Keepers Date: Fri, 17 Nov 2023 17:00:58 -0700 Subject: [PATCH] add toggle for using the delta tree via cli (#4694) #### Does this PR need a docs update or release note? - [x] :no_entry: No #### Issue(s) * #4690 #### Test Plan - [x] :zap: Unit test --- src/cli/backup/onedrive.go | 6 ++++++ src/cli/flags/onedrive.go | 4 ++++ src/cli/utils/options.go | 1 + src/pkg/control/options.go | 3 +++ 4 files changed, 14 insertions(+) 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"` }