From 42337d84c3c69d2cf190bb807fe98efd0be0ab97 Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Wed, 7 Jun 2017 14:04:11 -0400 Subject: [PATCH 1/8] Move source files into src for a better looking front page --- main/duplicacy_main.go | 2 +- duplicacy_acdclient.go => src/duplicacy_acdclient.go | 0 duplicacy_acdclient_test.go => src/duplicacy_acdclient_test.go | 0 duplicacy_acdstorage.go => src/duplicacy_acdstorage.go | 0 duplicacy_azurestorage.go => src/duplicacy_azurestorage.go | 0 duplicacy_b2client.go => src/duplicacy_b2client.go | 0 duplicacy_b2client_test.go => src/duplicacy_b2client_test.go | 0 duplicacy_b2storage.go => src/duplicacy_b2storage.go | 0 duplicacy_backupmanager.go => src/duplicacy_backupmanager.go | 0 .../duplicacy_backupmanager_test.go | 0 duplicacy_chunk.go => src/duplicacy_chunk.go | 0 duplicacy_chunk_test.go => src/duplicacy_chunk_test.go | 0 .../duplicacy_chunkdownloader.go | 0 duplicacy_chunkmaker.go => src/duplicacy_chunkmaker.go | 0 .../duplicacy_chunkmaker_test.go | 0 duplicacy_chunkuploader.go => src/duplicacy_chunkuploader.go | 0 .../duplicacy_chunkuploader_test.go | 0 duplicacy_config.go => src/duplicacy_config.go | 0 duplicacy_dropboxstorage.go => src/duplicacy_dropboxstorage.go | 0 duplicacy_entry.go => src/duplicacy_entry.go | 0 duplicacy_entry_test.go => src/duplicacy_entry_test.go | 0 duplicacy_filereader.go => src/duplicacy_filereader.go | 0 duplicacy_filestorage.go => src/duplicacy_filestorage.go | 0 duplicacy_gcdstorage.go => src/duplicacy_gcdstorage.go | 0 duplicacy_gcsstorage.go => src/duplicacy_gcsstorage.go | 0 duplicacy_hubicclient.go => src/duplicacy_hubicclient.go | 0 .../duplicacy_hubicclient_test.go | 0 duplicacy_hubicstorage.go => src/duplicacy_hubicstorage.go | 0 duplicacy_keyring.go => src/duplicacy_keyring.go | 0 .../duplicacy_keyring_windows.go | 0 duplicacy_log.go => src/duplicacy_log.go | 0 duplicacy_oneclient.go => src/duplicacy_oneclient.go | 0 duplicacy_oneclient_test.go => src/duplicacy_oneclient_test.go | 0 duplicacy_onestorage.go => src/duplicacy_onestorage.go | 0 duplicacy_preference.go => src/duplicacy_preference.go | 0 duplicacy_s3storage.go => src/duplicacy_s3storage.go | 0 duplicacy_sftpstorage.go => src/duplicacy_sftpstorage.go | 0 duplicacy_shadowcopy.go => src/duplicacy_shadowcopy.go | 0 .../duplicacy_shadowcopy_windows.go | 0 duplicacy_snapshot.go => src/duplicacy_snapshot.go | 0 .../duplicacy_snapshotmanager.go | 0 .../duplicacy_snapshotmanager_test.go | 0 duplicacy_storage.go => src/duplicacy_storage.go | 0 duplicacy_storage_test.go => src/duplicacy_storage_test.go | 0 duplicacy_utils.go => src/duplicacy_utils.go | 0 duplicacy_utils_others.go => src/duplicacy_utils_others.go | 0 duplicacy_utils_test.go => src/duplicacy_utils_test.go | 0 duplicacy_utils_windows.go => src/duplicacy_utils_windows.go | 0 48 files changed, 1 insertion(+), 1 deletion(-) rename duplicacy_acdclient.go => src/duplicacy_acdclient.go (100%) rename duplicacy_acdclient_test.go => src/duplicacy_acdclient_test.go (100%) rename duplicacy_acdstorage.go => src/duplicacy_acdstorage.go (100%) rename duplicacy_azurestorage.go => src/duplicacy_azurestorage.go (100%) rename duplicacy_b2client.go => src/duplicacy_b2client.go (100%) rename duplicacy_b2client_test.go => src/duplicacy_b2client_test.go (100%) rename duplicacy_b2storage.go => src/duplicacy_b2storage.go (100%) rename duplicacy_backupmanager.go => src/duplicacy_backupmanager.go (100%) rename duplicacy_backupmanager_test.go => src/duplicacy_backupmanager_test.go (100%) rename duplicacy_chunk.go => src/duplicacy_chunk.go (100%) rename duplicacy_chunk_test.go => src/duplicacy_chunk_test.go (100%) rename duplicacy_chunkdownloader.go => src/duplicacy_chunkdownloader.go (100%) rename duplicacy_chunkmaker.go => src/duplicacy_chunkmaker.go (100%) rename duplicacy_chunkmaker_test.go => src/duplicacy_chunkmaker_test.go (100%) rename duplicacy_chunkuploader.go => src/duplicacy_chunkuploader.go (100%) rename duplicacy_chunkuploader_test.go => src/duplicacy_chunkuploader_test.go (100%) rename duplicacy_config.go => src/duplicacy_config.go (100%) rename duplicacy_dropboxstorage.go => src/duplicacy_dropboxstorage.go (100%) rename duplicacy_entry.go => src/duplicacy_entry.go (100%) rename duplicacy_entry_test.go => src/duplicacy_entry_test.go (100%) rename duplicacy_filereader.go => src/duplicacy_filereader.go (100%) rename duplicacy_filestorage.go => src/duplicacy_filestorage.go (100%) rename duplicacy_gcdstorage.go => src/duplicacy_gcdstorage.go (100%) rename duplicacy_gcsstorage.go => src/duplicacy_gcsstorage.go (100%) rename duplicacy_hubicclient.go => src/duplicacy_hubicclient.go (100%) rename duplicacy_hubicclient_test.go => src/duplicacy_hubicclient_test.go (100%) rename duplicacy_hubicstorage.go => src/duplicacy_hubicstorage.go (100%) rename duplicacy_keyring.go => src/duplicacy_keyring.go (100%) rename duplicacy_keyring_windows.go => src/duplicacy_keyring_windows.go (100%) rename duplicacy_log.go => src/duplicacy_log.go (100%) rename duplicacy_oneclient.go => src/duplicacy_oneclient.go (100%) rename duplicacy_oneclient_test.go => src/duplicacy_oneclient_test.go (100%) rename duplicacy_onestorage.go => src/duplicacy_onestorage.go (100%) rename duplicacy_preference.go => src/duplicacy_preference.go (100%) rename duplicacy_s3storage.go => src/duplicacy_s3storage.go (100%) rename duplicacy_sftpstorage.go => src/duplicacy_sftpstorage.go (100%) rename duplicacy_shadowcopy.go => src/duplicacy_shadowcopy.go (100%) rename duplicacy_shadowcopy_windows.go => src/duplicacy_shadowcopy_windows.go (100%) rename duplicacy_snapshot.go => src/duplicacy_snapshot.go (100%) rename duplicacy_snapshotmanager.go => src/duplicacy_snapshotmanager.go (100%) rename duplicacy_snapshotmanager_test.go => src/duplicacy_snapshotmanager_test.go (100%) rename duplicacy_storage.go => src/duplicacy_storage.go (100%) rename duplicacy_storage_test.go => src/duplicacy_storage_test.go (100%) rename duplicacy_utils.go => src/duplicacy_utils.go (100%) rename duplicacy_utils_others.go => src/duplicacy_utils_others.go (100%) rename duplicacy_utils_test.go => src/duplicacy_utils_test.go (100%) rename duplicacy_utils_windows.go => src/duplicacy_utils_windows.go (100%) diff --git a/main/duplicacy_main.go b/main/duplicacy_main.go index cc87143..1795598 100644 --- a/main/duplicacy_main.go +++ b/main/duplicacy_main.go @@ -17,7 +17,7 @@ import ( "github.com/gilbertchen/cli" - "github.com/gilbertchen/duplicacy" + "github.com/gilbertchen/duplicacy/src" ) const ( diff --git a/duplicacy_acdclient.go b/src/duplicacy_acdclient.go similarity index 100% rename from duplicacy_acdclient.go rename to src/duplicacy_acdclient.go diff --git a/duplicacy_acdclient_test.go b/src/duplicacy_acdclient_test.go similarity index 100% rename from duplicacy_acdclient_test.go rename to src/duplicacy_acdclient_test.go diff --git a/duplicacy_acdstorage.go b/src/duplicacy_acdstorage.go similarity index 100% rename from duplicacy_acdstorage.go rename to src/duplicacy_acdstorage.go diff --git a/duplicacy_azurestorage.go b/src/duplicacy_azurestorage.go similarity index 100% rename from duplicacy_azurestorage.go rename to src/duplicacy_azurestorage.go diff --git a/duplicacy_b2client.go b/src/duplicacy_b2client.go similarity index 100% rename from duplicacy_b2client.go rename to src/duplicacy_b2client.go diff --git a/duplicacy_b2client_test.go b/src/duplicacy_b2client_test.go similarity index 100% rename from duplicacy_b2client_test.go rename to src/duplicacy_b2client_test.go diff --git a/duplicacy_b2storage.go b/src/duplicacy_b2storage.go similarity index 100% rename from duplicacy_b2storage.go rename to src/duplicacy_b2storage.go diff --git a/duplicacy_backupmanager.go b/src/duplicacy_backupmanager.go similarity index 100% rename from duplicacy_backupmanager.go rename to src/duplicacy_backupmanager.go diff --git a/duplicacy_backupmanager_test.go b/src/duplicacy_backupmanager_test.go similarity index 100% rename from duplicacy_backupmanager_test.go rename to src/duplicacy_backupmanager_test.go diff --git a/duplicacy_chunk.go b/src/duplicacy_chunk.go similarity index 100% rename from duplicacy_chunk.go rename to src/duplicacy_chunk.go diff --git a/duplicacy_chunk_test.go b/src/duplicacy_chunk_test.go similarity index 100% rename from duplicacy_chunk_test.go rename to src/duplicacy_chunk_test.go diff --git a/duplicacy_chunkdownloader.go b/src/duplicacy_chunkdownloader.go similarity index 100% rename from duplicacy_chunkdownloader.go rename to src/duplicacy_chunkdownloader.go diff --git a/duplicacy_chunkmaker.go b/src/duplicacy_chunkmaker.go similarity index 100% rename from duplicacy_chunkmaker.go rename to src/duplicacy_chunkmaker.go diff --git a/duplicacy_chunkmaker_test.go b/src/duplicacy_chunkmaker_test.go similarity index 100% rename from duplicacy_chunkmaker_test.go rename to src/duplicacy_chunkmaker_test.go diff --git a/duplicacy_chunkuploader.go b/src/duplicacy_chunkuploader.go similarity index 100% rename from duplicacy_chunkuploader.go rename to src/duplicacy_chunkuploader.go diff --git a/duplicacy_chunkuploader_test.go b/src/duplicacy_chunkuploader_test.go similarity index 100% rename from duplicacy_chunkuploader_test.go rename to src/duplicacy_chunkuploader_test.go diff --git a/duplicacy_config.go b/src/duplicacy_config.go similarity index 100% rename from duplicacy_config.go rename to src/duplicacy_config.go diff --git a/duplicacy_dropboxstorage.go b/src/duplicacy_dropboxstorage.go similarity index 100% rename from duplicacy_dropboxstorage.go rename to src/duplicacy_dropboxstorage.go diff --git a/duplicacy_entry.go b/src/duplicacy_entry.go similarity index 100% rename from duplicacy_entry.go rename to src/duplicacy_entry.go diff --git a/duplicacy_entry_test.go b/src/duplicacy_entry_test.go similarity index 100% rename from duplicacy_entry_test.go rename to src/duplicacy_entry_test.go diff --git a/duplicacy_filereader.go b/src/duplicacy_filereader.go similarity index 100% rename from duplicacy_filereader.go rename to src/duplicacy_filereader.go diff --git a/duplicacy_filestorage.go b/src/duplicacy_filestorage.go similarity index 100% rename from duplicacy_filestorage.go rename to src/duplicacy_filestorage.go diff --git a/duplicacy_gcdstorage.go b/src/duplicacy_gcdstorage.go similarity index 100% rename from duplicacy_gcdstorage.go rename to src/duplicacy_gcdstorage.go diff --git a/duplicacy_gcsstorage.go b/src/duplicacy_gcsstorage.go similarity index 100% rename from duplicacy_gcsstorage.go rename to src/duplicacy_gcsstorage.go diff --git a/duplicacy_hubicclient.go b/src/duplicacy_hubicclient.go similarity index 100% rename from duplicacy_hubicclient.go rename to src/duplicacy_hubicclient.go diff --git a/duplicacy_hubicclient_test.go b/src/duplicacy_hubicclient_test.go similarity index 100% rename from duplicacy_hubicclient_test.go rename to src/duplicacy_hubicclient_test.go diff --git a/duplicacy_hubicstorage.go b/src/duplicacy_hubicstorage.go similarity index 100% rename from duplicacy_hubicstorage.go rename to src/duplicacy_hubicstorage.go diff --git a/duplicacy_keyring.go b/src/duplicacy_keyring.go similarity index 100% rename from duplicacy_keyring.go rename to src/duplicacy_keyring.go diff --git a/duplicacy_keyring_windows.go b/src/duplicacy_keyring_windows.go similarity index 100% rename from duplicacy_keyring_windows.go rename to src/duplicacy_keyring_windows.go diff --git a/duplicacy_log.go b/src/duplicacy_log.go similarity index 100% rename from duplicacy_log.go rename to src/duplicacy_log.go diff --git a/duplicacy_oneclient.go b/src/duplicacy_oneclient.go similarity index 100% rename from duplicacy_oneclient.go rename to src/duplicacy_oneclient.go diff --git a/duplicacy_oneclient_test.go b/src/duplicacy_oneclient_test.go similarity index 100% rename from duplicacy_oneclient_test.go rename to src/duplicacy_oneclient_test.go diff --git a/duplicacy_onestorage.go b/src/duplicacy_onestorage.go similarity index 100% rename from duplicacy_onestorage.go rename to src/duplicacy_onestorage.go diff --git a/duplicacy_preference.go b/src/duplicacy_preference.go similarity index 100% rename from duplicacy_preference.go rename to src/duplicacy_preference.go diff --git a/duplicacy_s3storage.go b/src/duplicacy_s3storage.go similarity index 100% rename from duplicacy_s3storage.go rename to src/duplicacy_s3storage.go diff --git a/duplicacy_sftpstorage.go b/src/duplicacy_sftpstorage.go similarity index 100% rename from duplicacy_sftpstorage.go rename to src/duplicacy_sftpstorage.go diff --git a/duplicacy_shadowcopy.go b/src/duplicacy_shadowcopy.go similarity index 100% rename from duplicacy_shadowcopy.go rename to src/duplicacy_shadowcopy.go diff --git a/duplicacy_shadowcopy_windows.go b/src/duplicacy_shadowcopy_windows.go similarity index 100% rename from duplicacy_shadowcopy_windows.go rename to src/duplicacy_shadowcopy_windows.go diff --git a/duplicacy_snapshot.go b/src/duplicacy_snapshot.go similarity index 100% rename from duplicacy_snapshot.go rename to src/duplicacy_snapshot.go diff --git a/duplicacy_snapshotmanager.go b/src/duplicacy_snapshotmanager.go similarity index 100% rename from duplicacy_snapshotmanager.go rename to src/duplicacy_snapshotmanager.go diff --git a/duplicacy_snapshotmanager_test.go b/src/duplicacy_snapshotmanager_test.go similarity index 100% rename from duplicacy_snapshotmanager_test.go rename to src/duplicacy_snapshotmanager_test.go diff --git a/duplicacy_storage.go b/src/duplicacy_storage.go similarity index 100% rename from duplicacy_storage.go rename to src/duplicacy_storage.go diff --git a/duplicacy_storage_test.go b/src/duplicacy_storage_test.go similarity index 100% rename from duplicacy_storage_test.go rename to src/duplicacy_storage_test.go diff --git a/duplicacy_utils.go b/src/duplicacy_utils.go similarity index 100% rename from duplicacy_utils.go rename to src/duplicacy_utils.go diff --git a/duplicacy_utils_others.go b/src/duplicacy_utils_others.go similarity index 100% rename from duplicacy_utils_others.go rename to src/duplicacy_utils_others.go diff --git a/duplicacy_utils_test.go b/src/duplicacy_utils_test.go similarity index 100% rename from duplicacy_utils_test.go rename to src/duplicacy_utils_test.go diff --git a/duplicacy_utils_windows.go b/src/duplicacy_utils_windows.go similarity index 100% rename from duplicacy_utils_windows.go rename to src/duplicacy_utils_windows.go From eeed2a4ff294224b8e29de57e08c9178f4d73d3e Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Wed, 7 Jun 2017 14:23:40 -0400 Subject: [PATCH 2/8] Check in ACKNOWLEDGEMENTS.md --- ACKNOWLEDGEMENTS.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ACKNOWLEDGEMENTS.md diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md new file mode 100644 index 0000000..46e52b3 --- /dev/null +++ b/ACKNOWLEDGEMENTS.md @@ -0,0 +1,14 @@ +Duplicacy is based on the following open source project: + +| Projects | License | +|:--------:|:-------:| +|https://github.com/urfave/cli | MIT | +|https://github.com/aryann/difflib | MIT | +|https://github.com/bkaradzic/go-lz4 | BSD-2-Clause | +|https://github.com/Azure/azure-sdk-for-go | Apache-2.0 | +|https://github.com/tj/go-dropbox | MIT | +|https://github.com/goamz/goamz | LGPL-3.0 with static compilation excpetions | +|https://github.com/howeyc/gopass | ISC | +|https://github.com/tmc/keyring | ISC | +|https://github.com/pcwizz/xattr | BSD-2-Clause | +|https://github.com/minio/blake2b-simd | Apache-2.0 | From 1e8442311d3287ee44f6d53ad457c8d450576ec0 Mon Sep 17 00:00:00 2001 From: gilbertchen Date: Wed, 7 Jun 2017 14:25:03 -0400 Subject: [PATCH 3/8] Update ACKNOWLEDGEMENTS.md --- ACKNOWLEDGEMENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md index 46e52b3..0e49886 100644 --- a/ACKNOWLEDGEMENTS.md +++ b/ACKNOWLEDGEMENTS.md @@ -1,7 +1,7 @@ Duplicacy is based on the following open source project: | Projects | License | -|:--------:|:-------:| +|--------|:-------:| |https://github.com/urfave/cli | MIT | |https://github.com/aryann/difflib | MIT | |https://github.com/bkaradzic/go-lz4 | BSD-2-Clause | From 53f8a51b124c6f1235beb5c9491b95b894e1c7cf Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Wed, 7 Jun 2017 20:51:20 -0400 Subject: [PATCH 4/8] Fixed #63: can't use root drive as storage on Windows --- src/duplicacy_storage.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/duplicacy_storage.go b/src/duplicacy_storage.go index 1ea632a..d7dc7be 100644 --- a/src/duplicacy_storage.go +++ b/src/duplicacy_storage.go @@ -135,7 +135,7 @@ func CreateStorage(repository string, preference Preference, resetPassword bool, if strings.HasPrefix(storageURL, "/") { isFileStorage = true } else if runtime.GOOS == "windows" { - if len(storageURL) > 3 && storageURL[1] == ':' && (storageURL[2] == '/' || storageURL[2] == '\\') { + if len(storageURL) >= 3 && storageURL[1] == ':' && (storageURL[2] == '/' || storageURL[2] == '\\') { volume := strings.ToLower(storageURL[:1]) if volume[0] >= 'a' && volume[0] <= 'z' { isFileStorage = true From fa8c99747e073855432662c8783652a00fa59873 Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Wed, 7 Jun 2017 21:16:27 -0400 Subject: [PATCH 5/8] Fixed #65: don't show statistics when downloader.totalFileSize is 0 --- src/duplicacy_chunkdownloader.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/duplicacy_chunkdownloader.go b/src/duplicacy_chunkdownloader.go index 689206c..a2eac77 100644 --- a/src/duplicacy_chunkdownloader.go +++ b/src/duplicacy_chunkdownloader.go @@ -353,7 +353,7 @@ func (downloader *ChunkDownloader) Download(threadIndex int, task ChunkDownloadT } } - if downloader.showStatistics || IsTracing() { + if (downloader.showStatistics || IsTracing()) && downloader.totalFileSize > 0 { atomic.AddInt64(&downloader.downloadedFileSize, int64(chunk.GetLength())) downloadFileSize := atomic.LoadInt64(&downloader.downloadedFileSize) From 26f2ebd8dd5479fdfa618f30f9235904f85d3118 Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Wed, 7 Jun 2017 21:18:21 -0400 Subject: [PATCH 6/8] Bump version to 2.0.1 --- main/duplicacy_main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/duplicacy_main.go b/main/duplicacy_main.go index 1795598..36520a4 100644 --- a/main/duplicacy_main.go +++ b/main/duplicacy_main.go @@ -1658,7 +1658,7 @@ func main() { app.Name = "duplicacy" app.HelpName = "duplicacy" app.Usage = "A new generation cloud backup tool based on lock-free deduplication" - app.Version = "2.0.0" + app.Version = "2.0.1" err := app.Run(os.Args) if err != nil { os.Exit(2) From dd11641611386ad7b970034429ae5ab6e4582f01 Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Fri, 9 Jun 2017 21:05:44 -0400 Subject: [PATCH 7/8] Fixed a bug that caused restoration of two adjacent files to crash --- src/duplicacy_backupmanager_test.go | 14 ++++++++++++++ src/duplicacy_chunkdownloader.go | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/duplicacy_backupmanager_test.go b/src/duplicacy_backupmanager_test.go index 056d3ec..0a48dbb 100644 --- a/src/duplicacy_backupmanager_test.go +++ b/src/duplicacy_backupmanager_test.go @@ -267,6 +267,20 @@ func TestBackupManager(t *testing.T) { } } + // Remove file2 and dir1/file3 and restore them from revision 3 + os.Remove(testDir + "/repository1/file2") + os.Remove(testDir + "/repository1/dir1/file3") + backupManager.Restore(testDir + "/repository1", 3, /*inPlace=*/true, /*quickMode=*/false, threads, /*overwrite=*/true, + /*deleteMode=*/false, /*showStatistics=*/false, /*patterns=*/[]string{"+file2", "+dir1/file3", "-*"}) + + for _, f := range []string{ "file1", "file2", "dir1/file3" } { + hash1 := getFileHash(testDir + "/repository1/" + f) + hash2 := getFileHash(testDir + "/repository2/" + f) + if hash1 != hash2 { + t.Errorf("File %s has different hashes: %s vs %s", f, hash1, hash2) + } + } + /*buf := make([]byte, 1<<16) runtime.Stack(buf, true) fmt.Printf("%s", buf)*/ diff --git a/src/duplicacy_chunkdownloader.go b/src/duplicacy_chunkdownloader.go index a2eac77..74d8ec7 100644 --- a/src/duplicacy_chunkdownloader.go +++ b/src/duplicacy_chunkdownloader.go @@ -110,7 +110,7 @@ func (downloader *ChunkDownloader) AddFiles(snapshot *Snapshot, files [] *Entry) } downloader.taskList = append(downloader.taskList, task) } else { - downloader.taskList[lastChunkIndex].needed = true + downloader.taskList[len(downloader.taskList) - 1].needed = true } lastChunkIndex = i } From a37bc206d08a02d94b56516ef4a9d0a15abcd919 Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Fri, 9 Jun 2017 21:06:32 -0400 Subject: [PATCH 8/8] Bump version to 2.0.2 --- main/duplicacy_main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/duplicacy_main.go b/main/duplicacy_main.go index 36520a4..1e85596 100644 --- a/main/duplicacy_main.go +++ b/main/duplicacy_main.go @@ -1658,7 +1658,7 @@ func main() { app.Name = "duplicacy" app.HelpName = "duplicacy" app.Usage = "A new generation cloud backup tool based on lock-free deduplication" - app.Version = "2.0.1" + app.Version = "2.0.2" err := app.Run(os.Args) if err != nil { os.Exit(2)