From 40cae529e63c406f305523509f07657c3d0dfba6 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 1 Sep 2019 09:47:04 -0700 Subject: [PATCH 01/21] Move NormalizeDateTime method to Utility class. --- .../Library/Main/Database/LocalDatabase.cs | 14 +--------- .../Main/Database/LocalRestoreDatabase.cs | 6 ++--- Duplicati/Library/Utility/Utility.cs | 26 ++++++++++++++----- Duplicati/Server/Database/Connection.cs | 14 +--------- 4 files changed, 24 insertions(+), 36 deletions(-) diff --git a/Duplicati/Library/Main/Database/LocalDatabase.cs b/Duplicati/Library/Main/Database/LocalDatabase.cs index d8dc28bc3..86932f357 100644 --- a/Duplicati/Library/Main/Database/LocalDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalDatabase.cs @@ -153,21 +153,9 @@ namespace Duplicati.Library.Main.Database m_result = result; } - /// - /// Normalizes a DateTime instance floor'ed to seconds and in UTC - /// - /// The normalised date time - /// The input time - public static DateTime NormalizeDateTime(DateTime input) - { - var ticks = input.ToUniversalTime().Ticks; - ticks -= ticks % TimeSpan.TicksPerSecond; - return new DateTime(ticks, DateTimeKind.Utc); - } - public static long NormalizeDateTimeToEpochSeconds(DateTime input) { - return (long)Math.Floor((NormalizeDateTime(input) - Library.Utility.Utility.EPOCH).TotalSeconds); + return (long)Math.Floor((Library.Utility.Utility.NormalizeDateTime(input) - Library.Utility.Utility.EPOCH).TotalSeconds); } /// diff --git a/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs b/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs index 4ec010b1b..b013e2c89 100644 --- a/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using Duplicati.Library.Common; -using Duplicati.Library.Common.IO; +using Duplicati.Library.Common; +using Duplicati.Library.Common.IO; using Duplicati.Library.Main.Volumes; namespace Duplicati.Library.Main.Database @@ -189,7 +189,7 @@ namespace Duplicati.Library.Main.Database using(var cmd = m_connection.CreateCommand()) { - var filesetIds = GetFilesetIDs(NormalizeDateTime(restoretime), versions).ToList(); + var filesetIds = GetFilesetIDs(Library.Utility.Utility.NormalizeDateTime(restoretime), versions).ToList(); while(filesetIds.Count > 0) { var filesetId = filesetIds[0]; diff --git a/Duplicati/Library/Utility/Utility.cs b/Duplicati/Library/Utility/Utility.cs index 3b37c002c..d39cacfcd 100644 --- a/Duplicati/Library/Utility/Utility.cs +++ b/Duplicati/Library/Utility/Utility.cs @@ -21,8 +21,8 @@ using System.Linq; using System.Threading.Tasks; using System.Text; using System.Text.RegularExpressions; -using Duplicati.Library.Common.IO; -using Duplicati.Library.Common; +using Duplicati.Library.Common.IO; +using Duplicati.Library.Common; using System.Globalization; using System.Threading; @@ -801,12 +801,12 @@ namespace Duplicati.Library.Utility try { - var psi = new System.Diagnostics.ProcessStartInfo("which", appname) - { + var psi = new System.Diagnostics.ProcessStartInfo("which", appname) + { RedirectStandardOutput = true, RedirectStandardError = false, - RedirectStandardInput = false, - UseShellExecute = false + RedirectStandardInput = false, + UseShellExecute = false }; var pi = System.Diagnostics.Process.Start(psi); @@ -940,7 +940,19 @@ namespace Duplicati.Library.Utility ENVIRONMENT_VARIABLE_MATCHER_WINDOWS.Replace(str, m => Regex.Escape(lookup(m.Groups["name"].Value))); } - + + /// + /// Normalizes a DateTime instance floor'ed to seconds and in UTC + /// + /// The normalised date time + /// The input time + public static DateTime NormalizeDateTime(DateTime input) + { + var ticks = input.ToUniversalTime().Ticks; + ticks -= ticks % TimeSpan.TicksPerSecond; + return new DateTime(ticks, DateTimeKind.Utc); + } + /// /// The format string for a DateTime /// diff --git a/Duplicati/Server/Database/Connection.cs b/Duplicati/Server/Database/Connection.cs index beadb929d..478ac9dbb 100644 --- a/Duplicati/Server/Database/Connection.cs +++ b/Duplicati/Server/Database/Connection.cs @@ -941,18 +941,6 @@ namespace Duplicati.Server.Database return tempfile.ID; } - /// - /// Normalizes a DateTime instance floor'ed to seconds and in UTC - /// - /// The normalised date time - /// The input time - public static DateTime NormalizeDateTime(DateTime input) - { - var ticks = input.ToUniversalTime().Ticks; - ticks -= ticks % TimeSpan.TicksPerSecond; - return new DateTime(ticks, DateTimeKind.Utc); - } - public void PurgeLogData(DateTime purgeDate) { var t = NormalizeDateTimeToEpochSeconds(purgeDate); @@ -972,7 +960,7 @@ namespace Duplicati.Server.Database private static long NormalizeDateTimeToEpochSeconds(DateTime input) { - return (long)Math.Floor((NormalizeDateTime(input) - Library.Utility.Utility.EPOCH).TotalSeconds); + return (long)Math.Floor((Library.Utility.Utility.NormalizeDateTime(input) - Library.Utility.Utility.EPOCH).TotalSeconds); } private static DateTime ConvertToDateTime(System.Data.IDataReader rd, int index) From 0a390bd31a66e18e308449cf813593e0e8624aac Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 1 Sep 2019 09:56:14 -0700 Subject: [PATCH 02/21] Move NormalizeDateTimeToEpochSeconds method to Utility class. --- .../Main/Database/LocalBackupDatabase.cs | 2 +- .../Library/Main/Database/LocalDatabase.cs | 17 ++++++----------- .../Main/Database/LocalDeleteDatabase.cs | 2 +- Duplicati/Library/Utility/Utility.cs | 5 +++++ Duplicati/Server/Database/Connection.cs | 15 +++++---------- 5 files changed, 18 insertions(+), 23 deletions(-) diff --git a/Duplicati/Library/Main/Database/LocalBackupDatabase.cs b/Duplicati/Library/Main/Database/LocalBackupDatabase.cs index 8586a8a46..ef58083b4 100644 --- a/Duplicati/Library/Main/Database/LocalBackupDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalBackupDatabase.cs @@ -645,7 +645,7 @@ namespace Duplicati.Library.Main.Database private long GetPreviousFilesetID(System.Data.IDbCommand cmd, DateTime timestamp, long filesetid) { - var lastFilesetId = cmd.ExecuteScalarInt64(@"SELECT ""ID"" FROM ""Fileset"" WHERE ""Timestamp"" < ? AND ""ID"" != ? ORDER BY ""Timestamp"" DESC ", -1, NormalizeDateTimeToEpochSeconds(timestamp), filesetid); + var lastFilesetId = cmd.ExecuteScalarInt64(@"SELECT ""ID"" FROM ""Fileset"" WHERE ""Timestamp"" < ? AND ""ID"" != ? ORDER BY ""Timestamp"" DESC ", -1, Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(timestamp), filesetid); return lastFilesetId; } diff --git a/Duplicati/Library/Main/Database/LocalDatabase.cs b/Duplicati/Library/Main/Database/LocalDatabase.cs index 86932f357..0f76f8f8d 100644 --- a/Duplicati/Library/Main/Database/LocalDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalDatabase.cs @@ -96,7 +96,7 @@ namespace Duplicati.Library.Main.Database m_connection.Open(); using (var cmd = m_connection.CreateCommand()) - m_operationid = cmd.ExecuteScalarInt64( @"INSERT INTO ""Operation"" (""Description"", ""Timestamp"") VALUES (?, ?); SELECT last_insert_rowid();", -1, operation, NormalizeDateTimeToEpochSeconds(OperationTimestamp)); + m_operationid = cmd.ExecuteScalarInt64( @"INSERT INTO ""Operation"" (""Description"", ""Timestamp"") VALUES (?, ?); SELECT last_insert_rowid();", -1, operation, Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(OperationTimestamp)); } private LocalDatabase(System.Data.IDbConnection connection) @@ -153,11 +153,6 @@ namespace Duplicati.Library.Main.Database m_result = result; } - public static long NormalizeDateTimeToEpochSeconds(DateTime input) - { - return (long)Math.Floor((Library.Utility.Utility.NormalizeDateTime(input) - Library.Utility.Utility.EPOCH).TotalSeconds); - } - /// /// Creates a DateTime instance by adding the specified number of seconds to the EPOCH value /// @@ -224,7 +219,7 @@ namespace Duplicati.Library.Main.Database query.Append(singleTimeMatch ? @" ""Timestamp"" = ?" : @" ""Timestamp"" <= ?"); // Make sure the resolution is the same (i.e. no milliseconds) - args.Add(NormalizeDateTimeToEpochSeconds(time)); + args.Add(Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(time)); hasTime = true; } @@ -327,7 +322,7 @@ namespace Duplicati.Library.Main.Database { m_insertremotelogCommand.Transaction = transaction; m_insertremotelogCommand.SetParameterValue(0, m_operationid); - m_insertremotelogCommand.SetParameterValue(1, NormalizeDateTimeToEpochSeconds(DateTime.UtcNow)); + m_insertremotelogCommand.SetParameterValue(1, Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(DateTime.UtcNow)); m_insertremotelogCommand.SetParameterValue(2, operation); m_insertremotelogCommand.SetParameterValue(3, path); m_insertremotelogCommand.SetParameterValue(4, data); @@ -344,7 +339,7 @@ namespace Duplicati.Library.Main.Database { m_insertlogCommand.Transaction = transaction; m_insertlogCommand.SetParameterValue(0, m_operationid); - m_insertlogCommand.SetParameterValue(1, NormalizeDateTimeToEpochSeconds(DateTime.UtcNow)); + m_insertlogCommand.SetParameterValue(1, Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(DateTime.UtcNow)); m_insertlogCommand.SetParameterValue(2, type); m_insertlogCommand.SetParameterValue(3, message); m_insertlogCommand.SetParameterValue(4, exception == null ? null : exception.ToString()); @@ -1272,7 +1267,7 @@ ORDER BY using (var tr = new TemporaryTransactionWrapper(m_connection, transaction)) { cmd.Transaction = tr.Parent; - var id = cmd.ExecuteScalarInt64(@"INSERT INTO ""Fileset"" (""OperationID"", ""Timestamp"", ""VolumeID"") VALUES (?, ?, ?); SELECT last_insert_rowid();", -1, m_operationid, NormalizeDateTimeToEpochSeconds(timestamp), volumeid); + var id = cmd.ExecuteScalarInt64(@"INSERT INTO ""Fileset"" (""OperationID"", ""Timestamp"", ""VolumeID"") VALUES (?, ?, ?); SELECT last_insert_rowid();", -1, m_operationid, Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(timestamp), volumeid); tr.Commit(); return id; } @@ -1329,7 +1324,7 @@ ORDER BY using(var tr = m_connection.BeginTransaction()) using(var cmd = m_connection.CreateCommand(tr)) { - var t = NormalizeDateTimeToEpochSeconds(threshold); + var t = Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(threshold); cmd.ExecuteNonQuery(@"DELETE FROM ""LogData"" WHERE ""Timestamp"" < ?", t); cmd.ExecuteNonQuery(@"DELETE FROM ""RemoteOperation"" WHERE ""Timestamp"" < ?", t); diff --git a/Duplicati/Library/Main/Database/LocalDeleteDatabase.cs b/Duplicati/Library/Main/Database/LocalDeleteDatabase.cs index 3eaefc1c9..4319095f7 100644 --- a/Duplicati/Library/Main/Database/LocalDeleteDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalDeleteDatabase.cs @@ -76,7 +76,7 @@ namespace Duplicati.Library.Main.Database string q = string.Join(",", Enumerable.Repeat("?", sliceLen)); //First we remove unwanted entries - deleted += cmd.ExecuteNonQuery(@"DELETE FROM ""Fileset"" WHERE ""Timestamp"" IN (" + q + @") ", toDelete.Skip(sliceStart).Take(sliceLen).Select(x => NormalizeDateTimeToEpochSeconds(x)).Cast().ToArray()); + deleted += cmd.ExecuteNonQuery(@"DELETE FROM ""Fileset"" WHERE ""Timestamp"" IN (" + q + @") ", toDelete.Skip(sliceStart).Take(sliceLen).Select(Library.Utility.Utility.NormalizeDateTimeToEpochSeconds).Cast().ToArray()); } if (deleted != toDelete.Length) diff --git a/Duplicati/Library/Utility/Utility.cs b/Duplicati/Library/Utility/Utility.cs index d39cacfcd..0e9060522 100644 --- a/Duplicati/Library/Utility/Utility.cs +++ b/Duplicati/Library/Utility/Utility.cs @@ -953,6 +953,11 @@ namespace Duplicati.Library.Utility return new DateTime(ticks, DateTimeKind.Utc); } + public static long NormalizeDateTimeToEpochSeconds(DateTime input) + { + return (long) Math.Floor((NormalizeDateTime(input) - EPOCH).TotalSeconds); + } + /// /// The format string for a DateTime /// diff --git a/Duplicati/Server/Database/Connection.cs b/Duplicati/Server/Database/Connection.cs index 478ac9dbb..7f7bcb212 100644 --- a/Duplicati/Server/Database/Connection.cs +++ b/Duplicati/Server/Database/Connection.cs @@ -52,7 +52,7 @@ namespace Duplicati.Server.Database ((System.Data.IDbDataParameter)m_errorcmd.Parameters[0]).Value = id; ((System.Data.IDbDataParameter)m_errorcmd.Parameters[1]).Value = message; ((System.Data.IDbDataParameter)m_errorcmd.Parameters[2]).Value = ex?.ToString(); - ((System.Data.IDbDataParameter)m_errorcmd.Parameters[3]).Value = NormalizeDateTimeToEpochSeconds(DateTime.UtcNow); + ((System.Data.IDbDataParameter)m_errorcmd.Parameters[3]).Value = Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(DateTime.UtcNow); m_errorcmd.ExecuteNonQuery(); } } @@ -626,9 +626,9 @@ namespace Duplicati.Server.Database @"INSERT INTO ""Schedule"" (""Tags"", ""Time"", ""Repeat"", ""LastRun"", ""Rule"") VALUES (?,?,?,?,?)", (n) => new object[] { string.Join(",", n.Tags), - NormalizeDateTimeToEpochSeconds(n.Time), + Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(n.Time), n.Repeat, - NormalizeDateTimeToEpochSeconds(n.LastRun), + Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(n.LastRun), n.Rule ?? "", update ? (object)item.ID : null }); @@ -943,7 +943,7 @@ namespace Duplicati.Server.Database public void PurgeLogData(DateTime purgeDate) { - var t = NormalizeDateTimeToEpochSeconds(purgeDate); + var t = Library.Utility.Utility.NormalizeDateTimeToEpochSeconds(purgeDate); using(var tr = m_connection.BeginTransaction()) using(var cmd = m_connection.CreateCommand()) @@ -958,11 +958,6 @@ namespace Duplicati.Server.Database } } - private static long NormalizeDateTimeToEpochSeconds(DateTime input) - { - return (long)Math.Floor((Library.Utility.Utility.NormalizeDateTime(input) - Library.Utility.Utility.EPOCH).TotalSeconds); - } - private static DateTime ConvertToDateTime(System.Data.IDataReader rd, int index) { var unixTime = ConvertToInt64(rd, index); @@ -1162,7 +1157,7 @@ namespace Duplicati.Server.Database if (x.PropertyType.IsEnum) val = val.ToString(); else if (x.PropertyType == typeof(DateTime)) - val = NormalizeDateTimeToEpochSeconds((DateTime)val); + val = Library.Utility.Utility.NormalizeDateTimeToEpochSeconds((DateTime)val); return val; }).ToArray(); From 53befa36fc2ff8dc4046dbf8f068e959db21f60c Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 1 Sep 2019 10:01:50 -0700 Subject: [PATCH 03/21] Fix XML documentation. --- Duplicati/Library/Utility/Utility.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Duplicati/Library/Utility/Utility.cs b/Duplicati/Library/Utility/Utility.cs index 0e9060522..8a8d98933 100644 --- a/Duplicati/Library/Utility/Utility.cs +++ b/Duplicati/Library/Utility/Utility.cs @@ -942,9 +942,9 @@ namespace Duplicati.Library.Utility } /// - /// Normalizes a DateTime instance floor'ed to seconds and in UTC + /// Normalizes a DateTime instance by converting to UTC and flooring to seconds. /// - /// The normalised date time + /// The normalized date time /// The input time public static DateTime NormalizeDateTime(DateTime input) { From ef6b245ae90f95e1a217f3dfaf29cf8ff4678c45 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 1 Sep 2019 12:07:45 -0700 Subject: [PATCH 04/21] Add test for normalizing DateTimes. --- Duplicati/UnitTest/UtilityTests.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Duplicati/UnitTest/UtilityTests.cs b/Duplicati/UnitTest/UtilityTests.cs index 437889f77..25a5ff63c 100644 --- a/Duplicati/UnitTest/UtilityTests.cs +++ b/Duplicati/UnitTest/UtilityTests.cs @@ -200,6 +200,19 @@ namespace Duplicati.UnitTest Assert.IsNotNull(actualDuplicateItems); } + [Test] + [Category("Utility")] + public void NormalizeDateTime() + { + DateTime baseDateTime = new DateTime(2000, 1, 2, 3, 4, 5); + DateTime baseDateTimeUTC = baseDateTime.ToUniversalTime(); + Assert.AreEqual(baseDateTimeUTC, Utility.NormalizeDateTime(baseDateTime.AddMilliseconds(1))); + Assert.AreEqual(baseDateTimeUTC, Utility.NormalizeDateTime(baseDateTime.AddMilliseconds(500))); + Assert.AreEqual(baseDateTimeUTC, Utility.NormalizeDateTime(baseDateTime.AddMilliseconds(999))); + Assert.AreEqual(baseDateTimeUTC.AddSeconds(-1), Utility.NormalizeDateTime(baseDateTime.AddMilliseconds(-1))); + Assert.AreEqual(baseDateTimeUTC.AddSeconds(1), Utility.NormalizeDateTime(baseDateTime.AddSeconds(1.9))); + } + [Test] [Category("Utility")] public void ParseBool() From 149f5fe908dec4549acfb208a6b418ba0d4cc878 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Sun, 1 Sep 2019 12:23:27 -0700 Subject: [PATCH 05/21] Add test for computing seconds since epoch. --- Duplicati/UnitTest/UtilityTests.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Duplicati/UnitTest/UtilityTests.cs b/Duplicati/UnitTest/UtilityTests.cs index 25a5ff63c..66823f16d 100644 --- a/Duplicati/UnitTest/UtilityTests.cs +++ b/Duplicati/UnitTest/UtilityTests.cs @@ -212,7 +212,20 @@ namespace Duplicati.UnitTest Assert.AreEqual(baseDateTimeUTC.AddSeconds(-1), Utility.NormalizeDateTime(baseDateTime.AddMilliseconds(-1))); Assert.AreEqual(baseDateTimeUTC.AddSeconds(1), Utility.NormalizeDateTime(baseDateTime.AddSeconds(1.9))); } - + + [Test] + [Category("Utility")] + public void NormalizeDateTimeToEpochSeconds() + { + DateTime baseDateTime = new DateTime(2000, 1, 2, 3, 4, 5); + long epochSeconds = (long) (baseDateTime.ToUniversalTime() - Utility.EPOCH).TotalSeconds; + Assert.AreEqual(epochSeconds, Utility.NormalizeDateTimeToEpochSeconds(baseDateTime.AddMilliseconds(1))); + Assert.AreEqual(epochSeconds, Utility.NormalizeDateTimeToEpochSeconds(baseDateTime.AddMilliseconds(500))); + Assert.AreEqual(epochSeconds, Utility.NormalizeDateTimeToEpochSeconds(baseDateTime.AddMilliseconds(999))); + Assert.AreEqual(epochSeconds - 1, Utility.NormalizeDateTimeToEpochSeconds(baseDateTime.AddMilliseconds(-1))); + Assert.AreEqual(epochSeconds + 1, Utility.NormalizeDateTimeToEpochSeconds(baseDateTime.AddSeconds(1.9))); + } + [Test] [Category("Utility")] public void ParseBool() From b00dd2796ba6fb761b6a01e7ab8ec62c397951a2 Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Sun, 1 Sep 2019 20:34:36 -0400 Subject: [PATCH 06/21] fix ending separator --- .../ngax/scripts/services/EditUriBuiltins.js | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Duplicati/Server/webroot/ngax/scripts/services/EditUriBuiltins.js b/Duplicati/Server/webroot/ngax/scripts/services/EditUriBuiltins.js index f82a8bade..3651e6797 100644 --- a/Duplicati/Server/webroot/ngax/scripts/services/EditUriBuiltins.js +++ b/Duplicati/Server/webroot/ngax/scripts/services/EditUriBuiltins.js @@ -260,10 +260,8 @@ backupApp.service('EditUriBuiltins', function(AppService, AppUtils, SystemInfo, this['oauth-base'].apply(this, arguments); }; - // Parsers take a decomposed uri input and sets up the scope variables EditUriBackendConfig.parsers['file'] = function(scope, module, server, port, path, options) { - var dirsep = '/'; if (scope.Path == null && scope.Server == null) { var ix = scope.uri.indexOf('?'); if (ix < 0) @@ -274,17 +272,22 @@ backupApp.service('EditUriBuiltins', function(AppService, AppUtils, SystemInfo, if (ix < 0) ix = scope.uri.location; scope.Path = scope.uri.substr(scope.uri.indexOf('://') + 3, ix); - } else { - if (scope.Path != null && scope.Path.indexOf('\\') >= 0) - dirsep = '\\'; - - if (scope.Server != null && dirsep == '/') - scope.Path = scope.Server + '/' + scope.Path; + var dirsep = '/'; + var newScopePath = scope.Server; + if (scope.Path.indexOf('\\') >= 0 || scope.Server.indexOf('\\') >= 0) { + dirsep = '\\'; + } + if (scope.Server.substr(scope.Server.length - 1) != dirsep) { + newScopePath += dirsep; + } + if (scope.Path.length > 0) { + newScopePath += scope.Path; + } + scope.Path = newScopePath; } }; - EditUriBackendConfig.parsers['s3'] = function(scope, module, server, port, path, options) { if (options['--aws_access_key_id']) scope.Username = options['--aws_access_key_id']; From 93ace63d4f0cec18eb9b88c5f3d4ae024e8787fc Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Mon, 2 Sep 2019 14:49:19 +0200 Subject: [PATCH 07/21] Updated `app.config` files to redirect newtonsoft versions `0.0.0.0-12.0.2.0` to `12.0.2.0`. --- Duplicati/CommandLine/BackendTester/app.config | 2 +- Duplicati/CommandLine/BackendTool/app.config | 2 +- Duplicati/CommandLine/ConfigurationImporter/app.config | 2 +- Duplicati/CommandLine/RecoveryTool/app.config | 2 +- Duplicati/CommandLine/app.config | 2 +- Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config | 2 +- Duplicati/Library/Backend/AzureBlob/app.config | 2 +- Duplicati/Library/Backend/Mega/app.config | 2 +- Duplicati/Server/app.config | 2 +- Duplicati/Service/app.config | 2 +- Duplicati/UnitTest/app.config | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Duplicati/CommandLine/BackendTester/app.config b/Duplicati/CommandLine/BackendTester/app.config index dd1b7be4b..4a98fae75 100644 --- a/Duplicati/CommandLine/BackendTester/app.config +++ b/Duplicati/CommandLine/BackendTester/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/CommandLine/BackendTool/app.config b/Duplicati/CommandLine/BackendTool/app.config index 8ce3e95a8..a30407dbf 100644 --- a/Duplicati/CommandLine/BackendTool/app.config +++ b/Duplicati/CommandLine/BackendTool/app.config @@ -11,7 +11,7 @@ - + diff --git a/Duplicati/CommandLine/ConfigurationImporter/app.config b/Duplicati/CommandLine/ConfigurationImporter/app.config index 5ab9ab477..b62c59967 100644 --- a/Duplicati/CommandLine/ConfigurationImporter/app.config +++ b/Duplicati/CommandLine/ConfigurationImporter/app.config @@ -11,7 +11,7 @@ - + diff --git a/Duplicati/CommandLine/RecoveryTool/app.config b/Duplicati/CommandLine/RecoveryTool/app.config index dd1b7be4b..4a98fae75 100644 --- a/Duplicati/CommandLine/RecoveryTool/app.config +++ b/Duplicati/CommandLine/RecoveryTool/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/CommandLine/app.config b/Duplicati/CommandLine/app.config index 1eab5a6e8..158839b05 100644 --- a/Duplicati/CommandLine/app.config +++ b/Duplicati/CommandLine/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config b/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config index eb94ba0f2..40964b263 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config @@ -5,7 +5,7 @@ - + diff --git a/Duplicati/Library/Backend/AzureBlob/app.config b/Duplicati/Library/Backend/AzureBlob/app.config index acdba516e..0cfc73ad9 100644 --- a/Duplicati/Library/Backend/AzureBlob/app.config +++ b/Duplicati/Library/Backend/AzureBlob/app.config @@ -5,7 +5,7 @@ - + diff --git a/Duplicati/Library/Backend/Mega/app.config b/Duplicati/Library/Backend/Mega/app.config index 5616b953a..521a8a6d7 100644 --- a/Duplicati/Library/Backend/Mega/app.config +++ b/Duplicati/Library/Backend/Mega/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/Server/app.config b/Duplicati/Server/app.config index eb94ba0f2..40964b263 100644 --- a/Duplicati/Server/app.config +++ b/Duplicati/Server/app.config @@ -5,7 +5,7 @@ - + diff --git a/Duplicati/Service/app.config b/Duplicati/Service/app.config index dd1b7be4b..4a98fae75 100644 --- a/Duplicati/Service/app.config +++ b/Duplicati/Service/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/UnitTest/app.config b/Duplicati/UnitTest/app.config index fa5edff2d..a7b77e4d7 100644 --- a/Duplicati/UnitTest/app.config +++ b/Duplicati/UnitTest/app.config @@ -5,7 +5,7 @@ - + From e65196ed40583876ec52aea5fa63d421287af542 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Mon, 2 Sep 2019 14:56:08 +0200 Subject: [PATCH 08/21] Version bump to v2.0.4.25-2.0.4.25_canary_2019-09-02 You can download this build from: Binaries: https://updates.duplicati.com/canary/duplicati-2.0.4.25_canary_2019-09-02.zip Signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.25_canary_2019-09-02.zip.sig ASCII signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.25_canary_2019-09-02.zip.sig.asc MD5: 737499500856c4dfa018139ab8f66a2b SHA1: 0ec2927f5901542ea71354e3ab4261077d082f21 SHA256: 1448a7b55444d468b5614364c682e868bbc498ecaad1f2a4eb19105b4b31e843 --- Updates/build_version.txt | 2 +- changelog.txt | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Updates/build_version.txt b/Updates/build_version.txt index a45fd52cc..7273c0fa8 100644 --- a/Updates/build_version.txt +++ b/Updates/build_version.txt @@ -1 +1 @@ -24 +25 diff --git a/changelog.txt b/changelog.txt index 999fcd9d7..2a3f61c04 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,32 @@ +2019-09-02 - 2.0.4.25_canary_2019-09-02 +========== +== This is a rebuild of 2.0.4.24 with MSI packages and assembly redirect fixes == + +Change list from 2.0.4.24: +* Code cleanup, thanks @warwickmm +* Removed extra console output, thanks @wjansenw +* Fixed disposing backends after job completion, thanks @warwickmm +* Fixed an issue with throttled write, thanks @warwickmm +* Spelling fix, thanks @BlueBlock +* Fixed documetation in `run-script` examples, thanks @beppo-dd +* Improved unittests, thanks @BlueBlock +* Improved auto-compact and auto-vacuum, thanks @drwtsn32x +* Fixed problem with exceeeding the number of parameters supported by SQLite, thanks @drwtsn32x +* Improved status display, thanks @drwtsn32x +* Improved bugreport database scrubbing, thanks @drwtsn32x +* Removed GoogleDrive trash items in listing, thanks @BlueBlock +* Fixed the rename method in the GoogleDrive backend, thanks @BlueBlock +* Improved GCS storage class text, thanks @warwickmm +* Improved unittests for easier local testing, thanks @warwickmm +* Added workaround for AFTP upload delay, thanks @BlueBlock +* Fixed issue with reading the largest path prefix, thanks @BlueBlock +* Added conditional download of unittest data zip files, thanks @BlueBlock +* CI testing improvements, thanks @BlueBlock +* Fixed sporadic issue with backups of files being written, thanks @BlueBlock +* Updated to .Net Framework 4.6.2 +* Fixed issue with temporary files not being deleted as expected, thanks @BlueBlock +* Support for forcing calendar dates in time pickers, thanks @LacunaSoftware + 2019-09-02 - 2.0.4.24_canary_2019-09-02 ========== * Code cleanup, thanks @warwickmm From 2e36c7222eba35e6e7ece4b8cdbdf5b3e5a792ff Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Mon, 2 Sep 2019 21:51:00 +0200 Subject: [PATCH 09/21] Revert "Updated `app.config` files to redirect newtonsoft versions `0.0.0.0-12.0.2.0` to `12.0.2.0`." This reverts commit 93ace63d4f0cec18eb9b88c5f3d4ae024e8787fc. --- Duplicati/CommandLine/BackendTester/app.config | 2 +- Duplicati/CommandLine/BackendTool/app.config | 2 +- Duplicati/CommandLine/ConfigurationImporter/app.config | 2 +- Duplicati/CommandLine/RecoveryTool/app.config | 2 +- Duplicati/CommandLine/app.config | 2 +- Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config | 2 +- Duplicati/Library/Backend/AzureBlob/app.config | 2 +- Duplicati/Library/Backend/Mega/app.config | 2 +- Duplicati/Server/app.config | 2 +- Duplicati/Service/app.config | 2 +- Duplicati/UnitTest/app.config | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Duplicati/CommandLine/BackendTester/app.config b/Duplicati/CommandLine/BackendTester/app.config index 4a98fae75..dd1b7be4b 100644 --- a/Duplicati/CommandLine/BackendTester/app.config +++ b/Duplicati/CommandLine/BackendTester/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/CommandLine/BackendTool/app.config b/Duplicati/CommandLine/BackendTool/app.config index a30407dbf..8ce3e95a8 100644 --- a/Duplicati/CommandLine/BackendTool/app.config +++ b/Duplicati/CommandLine/BackendTool/app.config @@ -11,7 +11,7 @@ - + diff --git a/Duplicati/CommandLine/ConfigurationImporter/app.config b/Duplicati/CommandLine/ConfigurationImporter/app.config index b62c59967..5ab9ab477 100644 --- a/Duplicati/CommandLine/ConfigurationImporter/app.config +++ b/Duplicati/CommandLine/ConfigurationImporter/app.config @@ -11,7 +11,7 @@ - + diff --git a/Duplicati/CommandLine/RecoveryTool/app.config b/Duplicati/CommandLine/RecoveryTool/app.config index 4a98fae75..dd1b7be4b 100644 --- a/Duplicati/CommandLine/RecoveryTool/app.config +++ b/Duplicati/CommandLine/RecoveryTool/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/CommandLine/app.config b/Duplicati/CommandLine/app.config index 158839b05..1eab5a6e8 100644 --- a/Duplicati/CommandLine/app.config +++ b/Duplicati/CommandLine/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config b/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config index 40964b263..eb94ba0f2 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config @@ -5,7 +5,7 @@ - + diff --git a/Duplicati/Library/Backend/AzureBlob/app.config b/Duplicati/Library/Backend/AzureBlob/app.config index 0cfc73ad9..acdba516e 100644 --- a/Duplicati/Library/Backend/AzureBlob/app.config +++ b/Duplicati/Library/Backend/AzureBlob/app.config @@ -5,7 +5,7 @@ - + diff --git a/Duplicati/Library/Backend/Mega/app.config b/Duplicati/Library/Backend/Mega/app.config index 521a8a6d7..5616b953a 100644 --- a/Duplicati/Library/Backend/Mega/app.config +++ b/Duplicati/Library/Backend/Mega/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/Server/app.config b/Duplicati/Server/app.config index 40964b263..eb94ba0f2 100644 --- a/Duplicati/Server/app.config +++ b/Duplicati/Server/app.config @@ -5,7 +5,7 @@ - + diff --git a/Duplicati/Service/app.config b/Duplicati/Service/app.config index 4a98fae75..dd1b7be4b 100644 --- a/Duplicati/Service/app.config +++ b/Duplicati/Service/app.config @@ -7,7 +7,7 @@ - + diff --git a/Duplicati/UnitTest/app.config b/Duplicati/UnitTest/app.config index a7b77e4d7..fa5edff2d 100644 --- a/Duplicati/UnitTest/app.config +++ b/Duplicati/UnitTest/app.config @@ -5,7 +5,7 @@ - + From cc2e03b0d63fc4d02483f03f56e2f8f7adee682f Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Mon, 2 Sep 2019 22:07:20 +0200 Subject: [PATCH 10/21] Updated the assembly redirect file that is used to overwrite the normal app.config files on release builds. --- Installer/AssemblyRedirects.xml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Installer/AssemblyRedirects.xml b/Installer/AssemblyRedirects.xml index f031c1dc1..88c4ee8a3 100644 --- a/Installer/AssemblyRedirects.xml +++ b/Installer/AssemblyRedirects.xml @@ -20,13 +20,25 @@ - + + + + + + + + + + + + + - + \ No newline at end of file From c4b8092f0a9129272be39b6f5acf008f629a28a9 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Mon, 2 Sep 2019 22:30:28 +0200 Subject: [PATCH 11/21] Version bump to v2.0.4.26-2.0.4.26_canary_2019-09-02 You can download this build from: Binaries: https://updates.duplicati.com/canary/duplicati-2.0.4.26_canary_2019-09-02.zip Signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.26_canary_2019-09-02.zip.sig ASCII signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.26_canary_2019-09-02.zip.sig.asc MD5: bd79a880f7191705584d2630601c0b60 SHA1: 4c8df97e94f4ef40b9b4254b6e82b16282d3128c SHA256: c2c3e3f5c86864a8663e37e0155a243a96599a63965929116eaa0b8fa08cc20f --- Updates/build_version.txt | 2 +- changelog.txt | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Updates/build_version.txt b/Updates/build_version.txt index 7273c0fa8..6f4247a62 100644 --- a/Updates/build_version.txt +++ b/Updates/build_version.txt @@ -1 +1 @@ -25 +26 diff --git a/changelog.txt b/changelog.txt index 2a3f61c04..5bfa0f21b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,32 @@ +2019-09-02 - 2.0.4.26_canary_2019-09-02 +========== +== This is a rebuild of 2.0.4.24 with MSI packages and **new** assembly redirect fixes == + +Change list from 2.0.4.24: +* Code cleanup, thanks @warwickmm +* Removed extra console output, thanks @wjansenw +* Fixed disposing backends after job completion, thanks @warwickmm +* Fixed an issue with throttled write, thanks @warwickmm +* Spelling fix, thanks @BlueBlock +* Fixed documetation in `run-script` examples, thanks @beppo-dd +* Improved unittests, thanks @BlueBlock +* Improved auto-compact and auto-vacuum, thanks @drwtsn32x +* Fixed problem with exceeeding the number of parameters supported by SQLite, thanks @drwtsn32x +* Improved status display, thanks @drwtsn32x +* Improved bugreport database scrubbing, thanks @drwtsn32x +* Removed GoogleDrive trash items in listing, thanks @BlueBlock +* Fixed the rename method in the GoogleDrive backend, thanks @BlueBlock +* Improved GCS storage class text, thanks @warwickmm +* Improved unittests for easier local testing, thanks @warwickmm +* Added workaround for AFTP upload delay, thanks @BlueBlock +* Fixed issue with reading the largest path prefix, thanks @BlueBlock +* Added conditional download of unittest data zip files, thanks @BlueBlock +* CI testing improvements, thanks @BlueBlock +* Fixed sporadic issue with backups of files being written, thanks @BlueBlock +* Updated to .Net Framework 4.6.2 +* Fixed issue with temporary files not being deleted as expected, thanks @BlueBlock +* Support for forcing calendar dates in time pickers, thanks @LacunaSoftware + 2019-09-02 - 2.0.4.25_canary_2019-09-02 ========== == This is a rebuild of 2.0.4.24 with MSI packages and assembly redirect fixes == From 4a9fba8da7e09c0d1c2a76769bcd6319cc9345e2 Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Tue, 3 Sep 2019 12:55:42 -0400 Subject: [PATCH 12/21] change wix ordering to use more efficient method --- Installer/Windows/Duplicati.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installer/Windows/Duplicati.wxs b/Installer/Windows/Duplicati.wxs index 0ee98959e..d5dc846e4 100644 --- a/Installer/Windows/Duplicati.wxs +++ b/Installer/Windows/Duplicati.wxs @@ -84,7 +84,7 @@ - + From c912ae3e511f8662f02563850c8e871d8d506d2b Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Tue, 3 Sep 2019 12:56:56 -0400 Subject: [PATCH 13/21] fix display of 462 not installed msg it currently will display "The .NET Framework 4.6.2 must be installed ()" change to just display "The .NET Framework 4.6.2 must be installed" --- Installer/Windows/Duplicati.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installer/Windows/Duplicati.wxs b/Installer/Windows/Duplicati.wxs index d5dc846e4..d305ee47a 100644 --- a/Installer/Windows/Duplicati.wxs +++ b/Installer/Windows/Duplicati.wxs @@ -27,7 +27,7 @@ - + From 4b6f7a906f9c301efb0302f4ffb60dad8f99065d Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Tue, 3 Sep 2019 13:52:55 -0400 Subject: [PATCH 14/21] upgrade missing references --- Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config | 4 ++-- Duplicati/Library/Utility/packages.config | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config b/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config index 54fa558e1..b9e1d2970 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/Duplicati/Library/Utility/packages.config b/Duplicati/Library/Utility/packages.config index 621af80a6..6a42a4b95 100644 --- a/Duplicati/Library/Utility/packages.config +++ b/Duplicati/Library/Utility/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file From dcae22eef543899244c796eb28564b9365cde8f0 Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Tue, 3 Sep 2019 15:25:34 -0400 Subject: [PATCH 15/21] fix http reference ref: https://github.com/dotnet/corefx/issues/22781 --- Installer/AssemblyRedirects.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installer/AssemblyRedirects.xml b/Installer/AssemblyRedirects.xml index 88c4ee8a3..57f8304b0 100644 --- a/Installer/AssemblyRedirects.xml +++ b/Installer/AssemblyRedirects.xml @@ -31,7 +31,7 @@ - + From 55c76ca583726c7cc37eb7de3ba9f759982e9c5f Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Tue, 3 Sep 2019 23:20:21 +0200 Subject: [PATCH 16/21] Version bump to v2.0.4.27-2.0.4.27_canary_2019-09-03 You can download this build from: Binaries: https://updates.duplicati.com/canary/duplicati-2.0.4.27_canary_2019-09-03.zip Signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.27_canary_2019-09-03.zip.sig ASCII signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.27_canary_2019-09-03.zip.sig.asc MD5: 0ae812f0ec9f4c8b7ead11bd6b369837 SHA1: e3125ec1df1976784aab491cc51b0ee547c19f50 SHA256: 41d4a47c9906fdcbddff0edf0eb9840a4377f401305ad4c326ffd5c783edbde2 --- Updates/build_version.txt | 2 +- changelog.txt | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Updates/build_version.txt b/Updates/build_version.txt index 6f4247a62..f64f5d8d8 100644 --- a/Updates/build_version.txt +++ b/Updates/build_version.txt @@ -1 +1 @@ -26 +27 diff --git a/changelog.txt b/changelog.txt index 5bfa0f21b..ea133a4bc 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,9 @@ +2019-09-03 - 2.0.4.27_canary_2019-09-03 +========== +* Fixed issues with the MSI packages not upgrading correctly, thanks @BlueBlock +* Fixed some assembly redirects and package references, thanks @BlueBlock +* Code cleanup for EPOCH times, thanks @warwickmm + 2019-09-02 - 2.0.4.26_canary_2019-09-02 ========== == This is a rebuild of 2.0.4.24 with MSI packages and **new** assembly redirect fixes == From 8a6e2e2281f36c753e17b9c03c5ba5e666dc4599 Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Wed, 4 Sep 2019 11:59:46 -0400 Subject: [PATCH 17/21] revert wix back to InstallInitialize --- Installer/Windows/Duplicati.wxs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Installer/Windows/Duplicati.wxs b/Installer/Windows/Duplicati.wxs index d305ee47a..06f68b91d 100644 --- a/Installer/Windows/Duplicati.wxs +++ b/Installer/Windows/Duplicati.wxs @@ -84,13 +84,13 @@ - + - + From 718a5c7fe8c1976b4a6720288dfe762a0be35a8b Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Wed, 4 Sep 2019 12:00:11 -0400 Subject: [PATCH 18/21] update nuget cocol --- .../GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj | 4 ++-- .../GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs | 4 ++-- Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config | 2 +- Duplicati/Library/Main/Duplicati.Library.Main.csproj | 4 ++-- Duplicati/Library/Main/packages.config | 2 +- .../UsageReporter/Duplicati.Library.UsageReporter.csproj | 4 ++-- Duplicati/Library/UsageReporter/packages.config | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj index 98d9b0b79..ea32a8023 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj @@ -69,8 +69,8 @@ app.manifest - - ..\..\..\packages\CoCoL.1.6.1\lib\net45\CoCoL.dll + + ..\..\..\packages\CoCoL.1.6.2\lib\net45\CoCoL.dll ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs index 9e1a1180a..ad32ae5db 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("2.0.0.7")] -[assembly: AssemblyVersion("2.0.0.7")] -[assembly: AssemblyFileVersion("2.0.0.7")] +[assembly: AssemblyVersion("2.0.4.28")] +[assembly: AssemblyFileVersion("2.0.4.28")] diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config b/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config index b9e1d2970..2150f07f7 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/Duplicati/Library/Main/Duplicati.Library.Main.csproj b/Duplicati/Library/Main/Duplicati.Library.Main.csproj index 3daa9b088..4b3762ac8 100644 --- a/Duplicati/Library/Main/Duplicati.Library.Main.csproj +++ b/Duplicati/Library/Main/Duplicati.Library.Main.csproj @@ -36,8 +36,8 @@ 4 - - ..\..\..\packages\CoCoL.1.6.1\lib\net45\CoCoL.dll + + ..\..\..\packages\CoCoL.1.6.2\lib\net45\CoCoL.dll ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll diff --git a/Duplicati/Library/Main/packages.config b/Duplicati/Library/Main/packages.config index b9e1d2970..2150f07f7 100644 --- a/Duplicati/Library/Main/packages.config +++ b/Duplicati/Library/Main/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj b/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj index 416734f7d..d304c5adf 100644 --- a/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj +++ b/Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj @@ -31,8 +31,8 @@ false - - ..\..\..\packages\CoCoL.1.6.1\lib\net45\CoCoL.dll + + ..\..\..\packages\CoCoL.1.6.2\lib\net45\CoCoL.dll ..\..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll diff --git a/Duplicati/Library/UsageReporter/packages.config b/Duplicati/Library/UsageReporter/packages.config index b9e1d2970..2150f07f7 100644 --- a/Duplicati/Library/UsageReporter/packages.config +++ b/Duplicati/Library/UsageReporter/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file From 310e5d70115401e2eeba9139ed6dab63ab0c55f6 Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Wed, 4 Sep 2019 14:20:37 -0400 Subject: [PATCH 19/21] revert testing assembly version and update copyright --- .../GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs index ad32ae5db..a1360e670 100644 --- a/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs +++ b/Duplicati/GUI/Duplicati.GUI.TrayIcon/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Duplicati Team")] [assembly: AssemblyProduct("Duplicati.GUI.TrayIcon")] -[assembly: AssemblyCopyright("LGPL, Copyright © Duplicati Team 2015")] +[assembly: AssemblyCopyright("LGPL, Copyright © Duplicati Team 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("2.0.0.7")] -[assembly: AssemblyVersion("2.0.4.28")] -[assembly: AssemblyFileVersion("2.0.4.28")] +[assembly: AssemblyVersion("2.0.0.7")] +[assembly: AssemblyFileVersion("2.0.0.7")] From f29ab130f68185bae05a23b11a0cbd1d24c750df Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Thu, 5 Sep 2019 12:45:31 +0200 Subject: [PATCH 20/21] Version bump to v2.0.4.28-2.0.4.28_canary_2019-09-05 You can download this build from: Binaries: https://updates.duplicati.com/canary/duplicati-2.0.4.28_canary_2019-09-05.zip Signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.28_canary_2019-09-05.zip.sig ASCII signature file: https://updates.duplicati.com/canary/duplicati-2.0.4.28_canary_2019-09-05.zip.sig.asc MD5: 878a11fde63d4a3415dbb62aa73f423c SHA1: 78d79a383df85a50cf18b84ab68cf40e547f8e0f SHA256: 1bc4fa6bdd80b121711c7c665a715fd2048f136f864fe9b6d51b1a5775c26cc6 --- Updates/build_version.txt | 2 +- changelog.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Updates/build_version.txt b/Updates/build_version.txt index f64f5d8d8..9902f1784 100644 --- a/Updates/build_version.txt +++ b/Updates/build_version.txt @@ -1 +1 @@ -27 +28 diff --git a/changelog.txt b/changelog.txt index ea133a4bc..167ecc513 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +2019-09-05 - 2.0.4.28_canary_2019-09-05 +========== +* Updated CoCoL and WiX to fix rollback and upgrade errors, thanks @BlueBlock + 2019-09-03 - 2.0.4.27_canary_2019-09-03 ========== * Fixed issues with the MSI packages not upgrading correctly, thanks @BlueBlock From 3608a36555a510b586684f12b52d3b11cf0ab105 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Thu, 5 Sep 2019 13:14:54 +0200 Subject: [PATCH 21/21] Ignoring build-spam --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2577fafa1..7ba91052e 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ binfiles.wxs .idea/ .vs/ +Installer/debian/*.buildinfo