Patching files with local blocks

I think it is, but I think the code treats it as true if present at all, even if set to false. Seemingly a code bug:

Compare the above to this, which is what I expected to see, using ParseBoolOption, not ContainsKey:

Intended boolean option behavior is described here and here. Default is false, but mentioning the option is implicit true unless an explicit false is given (as you did). Problem is the code didn’t use ParseBoolOption.

This might be what you’re seeing, although you’d have to delete that option from defaults to know for sure:

As to what the options do, a given option has a short description and a long one that’s usually a superset. Here though, the long omits some critical applicability details. Command line help has both, and defaults:

C:\Program Files\Duplicati 2>Duplicati.CommandLine.exe help no-local-blocks
  --no-local-blocks (Boolean): Do not use local data
    Duplicati will attempt to use data from source files to minimize the
    amount of downloaded data. Use this option to skip this optimization and
    only use remote data.
    * default value: false

C:\Program Files\Duplicati 2>Duplicati.CommandLine.exe help patch-with-local-blocks
  --patch-with-local-blocks (Boolean): Use local file data when restoring
    Enable this option to look into other files on this machine to find
    existing blocks. This is a fairly slow operation but can limit the size
    of downloads.
    * default value: false

C:\Program Files\Duplicati 2>

So the short description for --patch-with-local-blocks is the only one that explicitly says that it’s for restore.

They both attempt to avoid getting remote blocks. One is limited, while yours sounds big. Was disk busy?

Code sequence here is:

  1.             //Look for existing blocks in the original source files only
    
  2.             // If other local files already have the blocks we want, we use them instead of downloading
    
  3.             // Fill BLOCKS with remote sources
    

and the restore was probably churning at #2. #1 is --no-local-blocks, default false. Double-negative = true. While beneficial, this can actually get in the way of proving a restore works (because it uses local blocks).