diff --git a/Duplicati/GUI/Datamodel/Task.Extension.cs b/Duplicati/GUI/Datamodel/Task.Extension.cs
index 69a92c149..f4c1a6ac0 100644
--- a/Duplicati/GUI/Datamodel/Task.Extension.cs
+++ b/Duplicati/GUI/Datamodel/Task.Extension.cs
@@ -274,7 +274,7 @@ namespace Duplicati.Datamodel
public bool AsyncTransfer
{
- get { return Duplicati.Library.Utility.Utility.ParseBool(m_owner.TaskExtensionsLookup[ASYNC_TRANSFER], false); }
+ get { return Duplicati.Library.Utility.Utility.ParseBool(m_owner.TaskExtensionsLookup[ASYNC_TRANSFER], true); }
set { m_owner.TaskExtensionsLookup[ASYNC_TRANSFER] = value.ToString(); }
}
diff --git a/Duplicati/GUI/TaskPackages.cs b/Duplicati/GUI/TaskPackages.cs
index 707668118..dd26142f6 100644
--- a/Duplicati/GUI/TaskPackages.cs
+++ b/Duplicati/GUI/TaskPackages.cs
@@ -219,8 +219,8 @@ namespace Duplicati.GUI
options["max-upload-pr-second"] = ext.UploadBandwidth;
if (!string.IsNullOrEmpty(ext.ThreadPriority))
options["thread-priority"] = ext.ThreadPriority;
- if (ext.AsyncTransfer)
- options["asynchronous-upload"] = "";
+ if (!ext.AsyncTransfer)
+ options["synchronous-upload"] = "true";
if (ext.IgnoreTimestamps)
options["disable-filetime-check"] = "";
diff --git a/Duplicati/Library/Main/Options.cs b/Duplicati/Library/Main/Options.cs
index 1290b9298..a9759269c 100644
--- a/Duplicati/Library/Main/Options.cs
+++ b/Duplicati/Library/Main/Options.cs
@@ -164,7 +164,8 @@ namespace Duplicati.Library.Main
new CommandLineArgument("sorted-filelist", CommandLineArgument.ArgumentType.Boolean, Strings.Options.SortedfilelistShort, Strings.Options.SortedfilelistLong, "false"),
- new CommandLineArgument("asynchronous-upload", CommandLineArgument.ArgumentType.Boolean, Strings.Options.AsynchronousuploadShort, Strings.Options.AsynchronousuploadLong, "false"),
+ new CommandLineArgument("synchronous-upload", CommandLineArgument.ArgumentType.Boolean, Strings.Options.SynchronousuploadShort, Strings.Options.SynchronousuploadLong, "false"),
+ new CommandLineArgument("asynchronous-upload", CommandLineArgument.ArgumentType.Boolean, Strings.Options.AsynchronousuploadShort, Strings.Options.AsynchronousuploadLong, "false", null, null, string.Format(Strings.Options.AsynchronousuploadDeprecated, "synchronous-upload")),
new CommandLineArgument("asynchronous-upload-limit", CommandLineArgument.ArgumentType.Integer, Strings.Options.AsynchronousuploadlimitShort, Strings.Options.AsynchronousuploadlimitLong, "2"),
new CommandLineArgument("asynchronous-upload-folder", CommandLineArgument.ArgumentType.Path, Strings.Options.AsynchronousuploadfolderShort, Strings.Options.AsynchronousuploadfolderLong),
@@ -657,7 +658,18 @@ namespace Duplicati.Library.Main
///
/// A value indicating if backups are transmitted on a separate thread
///
- public bool AsynchronousUpload { get { return GetBool("asynchronous-upload"); } }
+ public bool AsynchronousUpload
+ {
+ get
+ {
+ if (m_options.ContainsKey("synchronous-upload"))
+ return !GetBool("synchronous-upload");
+ else if (m_options.ContainsKey("asynchronous-upload"))
+ return GetBool("asynchronous-upload");
+ else
+ return true;
+ }
+ }
///
/// A value indicating if system is allowed to enter sleep power states during backup/restore ops (win32 only)
diff --git a/Duplicati/Library/Main/Strings/Options.Designer.cs b/Duplicati/Library/Main/Strings/Options.Designer.cs
index c92c455ce..f81832a1a 100644
--- a/Duplicati/Library/Main/Strings/Options.Designer.cs
+++ b/Duplicati/Library/Main/Strings/Options.Designer.cs
@@ -105,6 +105,15 @@ namespace Duplicati.Library.Main.Strings {
}
}
+ ///
+ /// Looks up a localized string similar to Asynchronous upload is now default, you can turn it off by using the flag --{0}.
+ ///
+ internal static string AsynchronousuploadDeprecated {
+ get {
+ return ResourceManager.GetString("AsynchronousuploadDeprecated", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to The pre-generated volumes will be placed into the temporary folder by default, this option can set a different folder for placing the temporary volumes, despite the name, this also works for synchronous runs.
///
@@ -996,6 +1005,24 @@ namespace Duplicati.Library.Main.Strings {
}
}
+ ///
+ /// Looks up a localized string similar to Duplicati will upload files while scanning the disk and producing volumes, which usually makes the backup faster. Use this flag to turn the behavior off, so that Duplicati will wait for each volume to complete..
+ ///
+ internal static string SynchronousuploadLong {
+ get {
+ return ResourceManager.GetString("SynchronousuploadLong", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Upload files synchronously.
+ ///
+ internal static string SynchronousuploadShort {
+ get {
+ return ResourceManager.GetString("SynchronousuploadShort", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Duplicati will use the system default temporary folder. This option can be used to supply an alternative folder for temporary storage..
///
diff --git a/Duplicati/Library/Main/Strings/Options.resx b/Duplicati/Library/Main/Strings/Options.resx
index 27155bcef..2b1c3c404 100644
--- a/Duplicati/Library/Main/Strings/Options.resx
+++ b/Duplicati/Library/Main/Strings/Options.resx
@@ -480,4 +480,13 @@
The max number of incrementals in a chain
+
+ Asynchronous upload is now default, you can turn it off by using the flag --{0}
+
+
+ Duplicati will upload files while scanning the disk and producing volumes, which usually makes the backup faster. Use this flag to turn the behavior off, so that Duplicati will wait for each volume to complete.
+
+
+ Upload files synchronously
+
\ No newline at end of file