syncthing/lib
Jakob Borg 5b37d0356c lib/model, gui: Correct completion percentages when there are lots of deletes (fixes #3496)
We used to consider deleted files & directories 128 bytes large. After
the delta indexes change a bug slipped in where deleted files would be
weighted according to their old non-deleted size. Both ways are
incorrect (but the latest change made it worse), as if there are more
files deleted than remaining data in the repo the needSize can be
greater than the globalSize, resulting in a negative completion
percentage.

This change makes it so that deleted items are zero bytes large, which
makes more sense. Instead we expose the number of files that we need to
delete as a separate field in the Completion() result, and hack the
percentage down to 95% complete if it was 100% complete but we need to
delete files. This latter part is sort of ugly, but necessary to give
the user some sort of feedback.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3556
2016-09-02 06:45:46 +00:00
..
auto build: Generate gui.files.go on the fly, remove from repo 2016-03-28 10:03:13 +00:00
beacon Remove unused struct field 2015-10-27 09:55:05 +01:00
config lib/model, lib/config: Support "live" device removal, folder unsharing and folder configuration changes 2016-08-07 16:21:59 +00:00
connections lib/connections, lib/model: Refactor connection close handling (fixes #3466) 2016-08-10 09:37:32 +00:00
db lib/model, gui: Correct completion percentages when there are lots of deletes (fixes #3496) 2016-09-02 06:45:46 +00:00
dialer build, lib: Correct total test coverage calculation 2016-08-08 16:29:32 +00:00
discover script, lib/discover: Fixup copyright checks 2016-07-04 14:53:11 +02:00
events lib/events: Hack to make test coverage stable from run to run 2016-08-08 18:09:40 +00:00
fs lib: Remove osutil.Remove & osutil.RemoveAll (fixes #3513) 2016-08-16 10:01:58 +00:00
ignore vendor: Update github.com/gobwas/glob (fixes #3174) 2016-05-28 04:43:54 +00:00
logger cmd/syncthing: Extract interfaces for things the API depends on 2016-03-21 19:36:08 +00:00
model lib/model, gui: Correct completion percentages when there are lots of deletes (fixes #3496) 2016-09-02 06:45:46 +00:00
nat lib/nat: Avoid concurrent reset of NAT timer (fixes #3337) 2016-06-26 10:17:12 +00:00
osutil lib: Remove osutil.Remove & osutil.RemoveAll (fixes #3513) 2016-08-16 10:01:58 +00:00
pmp build, lib: Correct total test coverage calculation 2016-08-08 16:29:32 +00:00
protocol lib/model, gui: Correct completion percentages when there are lots of deletes (fixes #3496) 2016-09-02 06:45:46 +00:00
rand lib/rand: Break out random functions into separate package 2016-05-26 07:02:56 +00:00
rc all: Rename LocalVersion to Sequence (fixes #3461) 2016-07-29 19:54:24 +00:00
relay build, lib: Correct total test coverage calculation 2016-08-08 16:29:32 +00:00
scanner lib: Remove osutil.Remove & osutil.RemoveAll (fixes #3513) 2016-08-16 10:01:58 +00:00
signature The PublicKey() method is an addition in Go 1.4 2015-10-27 16:03:14 +01:00
stats build, lib: Correct total test coverage calculation 2016-08-08 16:29:32 +00:00
symlinks build, lib: Correct total test coverage calculation 2016-08-08 16:29:32 +00:00
sync lib/sync: Skip the timing tests if the host timer is flaky 2016-03-27 10:41:38 +00:00
tlsutil build, lib: Correct total test coverage calculation 2016-08-08 16:29:32 +00:00
upgrade lib/upgrade: Cleanup failed upgrades (fixes #3500, fixes #3530) 2016-08-23 06:53:39 +00:00
upnp lib: simplify code 2016-05-18 22:47:11 +00:00
util lib/rand: Break out random functions into separate package 2016-05-26 07:02:56 +00:00
versioner lib: Remove osutil.Remove & osutil.RemoveAll (fixes #3513) 2016-08-16 10:01:58 +00:00