From 84fc1343a74880a834df26480bd37b4b785e87c8 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Mon, 11 Sep 2017 16:44:21 -0500 Subject: [PATCH] fix prune bug when last snapshot is removed for issue #182 --- src/duplicacy_snapshotmanager.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/duplicacy_snapshotmanager.go b/src/duplicacy_snapshotmanager.go index 16150ad..91aeb8e 100644 --- a/src/duplicacy_snapshotmanager.go +++ b/src/duplicacy_snapshotmanager.go @@ -2065,7 +2065,7 @@ func (manager *SnapshotManager) PruneSnapshots(selfID string, snapshotID string, snapshot.ID, snapshot.Revision) } manager.snapshotCache.DeleteFile(0, snapshotPath) - fmt.Fprintf(logFile, "Deleted snapshot %s at revision %d\n", snapshot.ID, snapshot.Revision) + fmt.Fprintf(logFile, "Deleted cached snapshot %s at revision %d\n", snapshot.ID, snapshot.Revision) } } @@ -2074,12 +2074,16 @@ func (manager *SnapshotManager) PruneSnapshots(selfID string, snapshotID string, "No fossil collection has been created since deleted snapshots did not reference any unique chunks") } - var latestSnapshot *Snapshot + var latestSnapshot *Snapshot = nil if len(allSnapshots[selfID]) > 0 { latestSnapshot = allSnapshots[selfID][len(allSnapshots[selfID]) - 1] } - manager.CleanSnapshotCache(latestSnapshot, allSnapshots) + if latestSnapshot != nil && !latestSnapshot.Flag { + manager.CleanSnapshotCache(latestSnapshot, allSnapshots) + } else { + manager.CleanSnapshotCache(nil, allSnapshots) + } return true }