mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-17 10:35:11 +00:00
8edd67a569
### Purpose This PR changes behaviour of syncthing related to `receive-only` folders, which I believe to be a bug since I wouldn't expect the current behaviour. With the current syncthing codebase, a file of a `receive-only` folder that is only modified locally can cause the creation of a `.sync-conflict` file. ### Testing Consider this szenario: Setup two paired clients that sync a folder with a given file (e.g. `Test.txt`). One of the clients configures the folder to be `receive-only`. Now, change the contents of the file for the receive-only client **_twice_**. With the current syncthing codebase, this leads to the creation of a `.sync-conflict` file that contains the modified contents, while the regular `Test.txt` file is reset to the cluster's provided contents. This is due to a `protocol.FileInfo#ShouldConflict` check, that is succeeding on the locally modified file. This PR changes this behaviour to not reset the file and not cause the creation of a `.sync-conflict`. Instead, the second content update is treated the same as the first content update. This PR also contains a test that fails on the current codebase and succeeds with the changes introduced in this PR. ### Screenshots This is not a GUI change ### Documentation This is not a user visible change. ## Authorship Your name and email will be added automatically to the AUTHORS file based on the commit metadata. #### Thanks to all the syncthing folks for this awesome piece of software! |
||
---|---|---|
.. | ||
mocks | ||
testdata | ||
blockpullreorderer_test.go | ||
blockpullreorderer.go | ||
debug.go | ||
deviceactivity_test.go | ||
deviceactivity.go | ||
devicedownloadstate_test.go | ||
devicedownloadstate.go | ||
doc.go | ||
fakeconns_test.go | ||
folder_recvenc.go | ||
folder_recvonly_test.go | ||
folder_recvonly.go | ||
folder_sendonly.go | ||
folder_sendrecv_test.go | ||
folder_sendrecv_unix.go | ||
folder_sendrecv_windows.go | ||
folder_sendrecv.go | ||
folder_summary.go | ||
folder_test.go | ||
folder.go | ||
folderstate.go | ||
indexhandler.go | ||
metrics.go | ||
model_test.go | ||
model.go | ||
progressemitter_test.go | ||
progressemitter.go | ||
queue_test.go | ||
queue.go | ||
requests_test.go | ||
sentdownloadstate.go | ||
service_map_test.go | ||
service_map.go | ||
sharedpullerstate_test.go | ||
sharedpullerstate.go | ||
testos_test.go | ||
testutils_test.go | ||
util.go | ||
utils_test.go |