diff --git a/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs b/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs index acc463278..dcb0ffe3f 100644 --- a/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs +++ b/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs @@ -92,7 +92,7 @@ namespace Duplicati.Library.Main.Operation using(var backend = new BackendManager(m_backendurl, m_options, m_result.BackendWriter, restoredb)) { restoredb.RepairInProgress = true; - + var autoDetectBlockSize = !(m_options.HasBlocksize && restoredb.GetDbOptions().ContainsKey("blocksize")); var volumeIds = new Dictionary(); var rawlist = backend.List(); @@ -205,7 +205,7 @@ namespace Duplicati.Library.Main.Operation var parsed = VolumeBase.ParseFilename(entry.Name); - if (!hasUpdatedOptions && !updating) + if (!hasUpdatedOptions && (!updating || autoDetectBlockSize)) { VolumeReaderBase.UpdateOptionsFromManifest(parsed.CompressionModule, tmpfile, m_options); hasUpdatedOptions = true; diff --git a/Duplicati/Library/Main/Options.cs b/Duplicati/Library/Main/Options.cs index 71d998fa6..60760a8c1 100644 --- a/Duplicati/Library/Main/Options.cs +++ b/Duplicati/Library/Main/Options.cs @@ -1457,6 +1457,11 @@ namespace Duplicati.Library.Main } } + /// + /// Gets a value indicating whether a blocksize has been specified + /// + public bool HasBlocksize { get { return m_options.ContainsKey("blocksize") && !string.IsNullOrEmpty(m_options["blocksize"]); } } + /// /// Gets the size of file-blocks ///