Simon Frei
dbb3a34887
lib/ignore: Centralize handling of temporary filenames ( fixes #3899 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3901
LGTM: calmh, AudriusButkevicius
2017-01-17 07:33:48 +00:00
Audrius Butkevicius
1a1e35d998
lib/osutil: Replace IsDir with TraversesSymlink ( fixes #3839 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3883
LGTM: calmh
2017-01-10 07:09:31 +00:00
Audrius Butkevicius
29d010ec0e
lib/model, lib/weakhash: Hash using adler32, add heuristic in puller
...
Adler32 is much faster, and the heuristic avoid the obvious cases where it
will not help.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3872
2017-01-04 21:04:13 +00:00
Jakob Borg
f5a310ad64
Revert "lib/model: Handle filename conflicts on Windows."
...
This reverts commit 01e50eb3fa
.
2016-12-23 11:10:58 +01:00
Unrud
01e50eb3fa
lib/model: Handle filename conflicts on Windows.
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3810
LGTM: calmh
2016-12-22 23:04:53 +00:00
Jakob Borg
744c2e82b5
build: Enable gometalinter "staticcheck" check
2016-12-21 14:53:45 +01:00
Jakob Borg
5c067661f4
lib/model: Consistently show folder description in startup messages
...
Since we anyway need the folderConfig for this I'm skipping the copying
of all it's attributes that rwfolder did and just keeping the original
around instead.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3825
2016-12-21 11:23:20 +00:00
Heiko Zuerker
398c356f22
lib/model: Clarify master terminology ( fixes #2679 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3793
2016-12-16 22:23:35 +00:00
Audrius Butkevicius
0582836820
lib/model, lib/scanner: Efficient inserts/deletes in the middle of the file
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3527
2016-12-14 23:30:29 +00:00
Jakob Borg
3582783972
lib/model, lib/osutil: Verify target directory before pulling / requesting
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3798
2016-12-13 10:24:10 +00:00
Jakob Borg
7b07ed6580
lib/model, lib/protocol, lib/scanner: Include symlink target in index, pull symlinks synchronously
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3792
2016-12-09 18:02:18 +00:00
Jakob Borg
63194a37f6
lib/model: Double check results in filepath.Join where needed
...
Wherever we have untrusted relative paths, make sure they are not
escaping their folder root.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3776
2016-12-01 12:35:11 +00:00
Simon Frei
4160ce674d
model: consistently use cfg when referring to config instance and not package
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3755
2016-11-22 23:14:20 +00:00
Unrud
1574b7d834
lib/model: Add fsync of files and directories, option to disable ( fixes #3711 )
2016-11-21 18:09:51 +01:00
Jakob Borg
0b1475169f
lib/model: Correct virtual mtime handling ( fixes #3516 )
...
We previously set the mtime on the temp file, and then renamed it to the
real path. Unfortunately that means we'd save the real timestamp under
the under the temp name ".syncthing.foo.tmp" when the actual file that
we will look up on the next scan is "foo". This moves the Chtimes later,
ensuring that it gets recorded correctly under the right name.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3519
2016-08-16 18:22:19 +00:00
Jakob Borg
18cc7a663b
lib: Remove osutil.Remove & osutil.RemoveAll ( fixes #3513 )
...
These are no longer required with Go 1.7. Change made by removing the
functions, doing a global s/osutil.Remove/os.Remove/.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3514
2016-08-16 10:01:58 +00:00
Jakob Borg
ea87bcefd6
lib/protocol, lib/model: Implement high precision time stamps ( fixes #3305 )
...
This adds a new nanoseconds field to the FileInfo, populates it during
scans and sets the non-truncated time in Chtimes calls.
The actual file modification time is defined as modified_s seconds +
modified_ns nanoseconds. It's expected that the modified_ns field is <=
1e9 (that is, all whole seconds should go in the modified_s field) but
not really enforced. Given that it's an int32 the timestamp can be
adjusted += ~2.9 seconds by the modified_ns field...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3431
2016-08-06 13:05:59 +00:00
Jakob Borg
0655991a19
lib/db, lib/fs, lib/model: Introduce fs.MtimeFS, remove VirtualMtimeRepo
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3479
2016-08-05 17:45:45 +00:00
Jakob Borg
1eb6db6ca8
cmd/syncthing, lib/...: Correctly handle ignores & invalid file names ( fixes #3012 , fixes #3457 , fixes #3458 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3464
2016-08-05 07:13:52 +00:00
Jakob Borg
297240facf
all: Rename LocalVersion to Sequence ( fixes #3461 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3462
2016-07-29 19:54:24 +00:00
Jakob Borg
7aaa1dd8a3
lib/scanner: Recheck file size and modification time after hashing (ref #3440 )
...
To catch the case where the file changed. Also make sure we never let a
size-vs-blocklist mismatch slip through.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3443
2016-07-26 08:51:39 +00:00
Jakob Borg
47fa4b0a2c
cmd/syncthing, lib/db, lib/model, lib/protocol: Implement delta indexes ( fixes #438 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3427
2016-07-23 12:46:31 +00:00
Jakob Borg
fa0101bd60
lib/protocol, lib/discover, lib/db: Use protocol buffer serialization ( fixes #3080 )
...
This changes the BEP protocol to use protocol buffer serialization
instead of XDR, and therefore also the database format. The local
discovery protocol is also updated to be protocol buffer format.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3276
LGTM: AudriusButkevicius
2016-07-04 10:40:29 +00:00
Lars K.W. Gohlke
af0bc95de5
lib/model: Refactor encapsulation of the folder scanning
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3017
2016-06-29 06:37:34 +00:00
Audrius Butkevicius
92a23da3ec
lib/model: Make the (?d) prefix actually work
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3205
2016-05-28 04:17:34 +00:00
Audrius Butkevicius
915e1ac7de
lib/model: Handle (?d) deletes of directories ( fixes #3164 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3170
2016-05-23 23:32:08 +00:00
Audrius Butkevicius
00be2bf18d
lib/model: Track puller creation times ( fixes #3145 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3150
2016-05-22 10:16:09 +00:00
Jakob Borg
44290a66b7
lib/model: Leave temp file in place when final rename fails ( fixes #3146 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3148
2016-05-22 09:06:07 +00:00
Nate Morrison
86ca58e2a9
lib/model: Emit LocalDiskUpdated events on detecting local changes
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3055
2016-05-19 00:19:26 +00:00
Jakob Borg
6f743f3138
Revert "lib/model: Emit LocalDiskUpdated events on detecting local changes"
...
This reverts commit 5a7fad0bcd
.
2016-05-14 10:55:24 +02:00
Nate Morrison
5a7fad0bcd
lib/model: Emit LocalDiskUpdated events on detecting local changes
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3055
2016-05-14 08:37:07 +00:00
Jakob Borg
1a703efa78
lib/model: Fix accounting error in rescan with multiple subs ( fixes #3028 )
...
When doing prefix scans in the database, "foo" should not be considered
a prefix of "foo2". Instead, it should match "foo" exactly and also
strings with the prefix "foo/". This is more restrictive than what the
standard leveldb prefix scan does so we add some code to enforce it.
Also exposes the initialScanCompleted on the rwfolder for testing, and
change it to be a channel (so we can wait for it from another
goroutine). Otherwise we can't be sure when the initial scan has
completed, and we need to wait for that or it might pick up changes
we're doing at an unexpected time.
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3067
2016-05-09 12:56:21 +00:00
Audrius Butkevicius
eabd2fc936
lib/model: Use factories for creating folders
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3029
2016-05-04 10:47:33 +00:00
Jakob Borg
b8c5cf1142
lib/model: Refactor: complete renaming of p -> f
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3015
2016-04-26 15:11:19 +00:00
Lars K.W. Gohlke
236f121c4e
lib/model: Refactor out folder and folderscan types, simplify somewhat
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3007
2016-04-26 14:01:46 +00:00
Lars K.W. Gohlke
e87c1abd4e
all: Clean up dead code
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3005
2016-04-22 21:15:36 +00:00
AudriusButkevicius
1a5f524ae4
lib/model, lib/protocol: Implement temporary indexes ( fixes #950 )
...
GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/2252
2016-04-15 10:59:41 +00:00
Audrius Butkevicius
5a98af622d
lib/ignore: Implement deletable ignores using (?d) prefix ( fixes #1362 )
2016-04-07 09:34:07 +00:00
Michael Ploujnikov
66f480519b
lib/model: Refactor out scanning method from rwfolder.Serve loop
2016-03-30 06:53:47 +00:00
Jakob Borg
11d4986517
Humanize serialization of version vectors (again)
2016-01-20 11:14:08 -08:00
Jakob Borg
acaf134dfe
Don't crash on folder remove while pulling ( fixes #2705 )
2016-01-16 21:42:32 +01:00
Audrius Butkevicius
c4c6df179b
Handle race within the job queue ( fixes #1263 )
2016-01-16 17:20:21 +00:00
Jakob Borg
096b2d73cd
Don't conflict copy conflict copies ( fixes #2605 )
2016-01-03 21:16:31 +01:00
Anderson Mesquita
3f94e70488
WIP: Consider tempfile when checking for free space ( fixes #2598 )
...
Checks the existing blocks that can be reused when downloading a file so
that it only requires the space corresponding to the missing blocks.
This will prevent syncthing from claiming the folder doesn't have enough
space when resuming download of large files after they have been
partially downloaded.
2015-12-21 13:36:08 -05:00
Jakob Borg
03935b2d64
Don't verify free space for files when folder MinDiskFreePct==0 ( fixes #2600 )
2015-12-19 13:59:08 +01:00
buinsky
05a31c2686
Fix deleting folders on WinXP ( fixes #2522 )
2015-11-30 19:09:36 +03:00
Jakob Borg
d46f267663
Handle sparse files ( fixes #245 )
2015-11-21 17:58:09 +01:00
AudriusButkevicius
f7edd36931
Use virtualMtime when deciding if a file is up to date
2015-11-12 03:40:06 +00:00
Jakob Borg
686f91777c
Don't force rescan dirs and symlinks
...
We can't look for changed modtime on these as we don't track the modtime
to start with.
2015-11-04 19:53:07 +00:00
Jakob Borg
e1a8ea7dec
Rescan changed files before pulling on top of them ( fixes #2416 )
2015-10-29 09:12:37 +01:00