Olivier Goffart
ade4c11de3
Rename: fix renamed folder moved into renamed folder issue
...
Issue #6694
2020-12-15 10:58:35 +01:00
Christian Kamm
836d298141
vfs suffix: Ignore server files or synced files with the suffix #6953
2020-12-15 10:58:34 +01:00
Christian Kamm
20ef0a0290
vfs: Allow retrieving of pin state paths and flags
2020-12-15 10:58:33 +01:00
Christian Kamm
4df101ed84
vfs: Allow (de-)hydrating the full sync folder
2020-12-15 10:58:33 +01:00
Christian Kamm
aa382eda29
Db: Add wiping of pin state for subtrees
2020-12-15 10:58:30 +01:00
Christian Kamm
d956f518a8
vfs: Remove newFilesAreVirtual - use root PinState instead
...
This unifies how to deal with pin states.
Also enable reading a folders direct pin state vs its effective pin
state.
2020-12-15 10:58:30 +01:00
Olivier Goffart
62ec4c9330
Discovery: Handle the blacklistFiles from the server capabilities
...
Issue #434
Ideally one could add the blacklist to the exlucde reggexp, but this
is simpler
2020-12-15 10:58:30 +01:00
Christian Kamm
486c25cb47
vfs: Use PinState in sync algorithm #6815
...
New files are virtual if the file's pin state is OnlineOnly.
2020-12-15 10:58:29 +01:00
Christian Kamm
68126ac208
vfs: Introduce PinState db storage #6815
...
The idea is to allow folders (and later maybe files?) to be
- pinned to be available locally
- pinned to be online only
- inherit their pin from the parent
Where this pinning only controls the default for new files.
Subfolders may have a different pin state, and contained files
may be hydrated or dehydrated based on user actions.
This value is stored in a new 'flags' table. The idea is to store
data there that doesn't necessarily exist for each metadata entry.
The selective sync state could be migrated to this table.
2020-12-15 10:58:29 +01:00
Olivier Goffart
dfedb09fd8
Move test for issue #1329 from t1.pl to new test system
2020-12-15 10:58:29 +01:00
Olivier Goffart
a29320b18d
Discovery: Set right direction when restoring deleted discovery because it has modified files
...
(Catched by a faillure of t1.pl)
2020-12-15 10:58:29 +01:00
Olivier Goffart
6da96cd026
Port the exclude test to the QTest Framework
...
This is just a port to QtTest, I did not change the layout of the test.
I did search and replace to replace the assert with QCOMPARE/QVERIFY
I still call setup and setup_init like before (only explicitly, now)
Also ported the preformence tests to QBENCHMAK because windows don't have
gettimeofday.
Relates #6358
2020-12-15 10:58:29 +01:00
Olivier Goffart
fad1238b33
Test: Move the test for Utility::normalizeEtag to testutility.cpp
...
I just moved the text and did the minimum to port it to QtTest
Did not change hte layout of it.
Relates #6358
2020-12-15 10:58:28 +01:00
Olivier Goffart
6e048a2d3f
Remove check_csync_util
...
It's testing nothing.
Only that one can convert a csync instruction to a string.
But this is only used in debug anyway
Relates to #6358
2020-12-15 10:58:28 +01:00
Christian Kamm
69144566ce
Database: Change path for new dbs to .sync_* #5904
...
This is to avoid issues on OSX, where the ._ prefix has special meaning.
Originally (before 2.3.2) ._ was necessary to guarantee exclusion. But
since then the .sync_ prefix is excluded as well.
This does not affect existing database files.
2020-12-15 10:58:28 +01:00
Olivier Goffart
edd806960d
Propagator: Don't abort sync on error 503
...
Only do it when it is actually a maintenance mode
Issues #5088 , #5859 , https://github.com/owncloud/enterprise/issues/2637
2020-12-15 10:58:27 +01:00
Christian Kamm
305d439c41
vfs: Separate vfs availability from new-files-virtual
...
This helps support 2.5 settings where there are virtual files in the
tree but new files aren't created virtual.
It's also a prelude for #6815
There's currently no way of
- upgrading vfs plugins (a silent suffix->winvfs upgrade is attempted
once only, when moving to master)
- disabling vfs capabilities outright
2020-12-15 10:58:27 +01:00
Christian Kamm
b30f79edf6
vfs: Ensure SyncOptions::_vfs is never null
...
- Create a VfsOff derived class
- Make it a shared pointer shared with Folder::_vfs
2020-12-15 10:58:26 +01:00
Christian Kamm
fa2450cf11
vfs: Be more careful about Vfs instance ownership
2020-12-15 10:58:25 +01:00
Dominik Schmidt
1104883fba
Cleanup CMake (output)
2020-12-15 10:58:23 +01:00
Christian Kamm
fa6f3cd847
vfs: Fix plugin decision in wizards, sanitize loading
2020-12-15 10:58:23 +01:00
Christian Kamm
0f2ef42ba2
Fixes after rebase to master
...
- use vfs suffix in ProcessDirectoryJob
- fix include vfs.h
- fix local vio passing vfs
- fix checksum computation
- vfs mode use
- mingw lambda compile issue
2020-12-15 10:58:21 +01:00
Christian Kamm
2b20985875
winvfs: initial work
...
Done by ckamm and dschmidt
2020-12-15 10:58:21 +01:00
Christian Kamm
22e08cf6ad
Checksums: Work on QIODevice*s
...
Needed for cfapi where we want to feed data through a custom device
which retrieves data from the windows api.
2020-12-15 10:58:21 +01:00
Kevin Ottens
cce3d6f6fc
Excludes: switch all the path handling to QString
...
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 10:58:20 +01:00
Olivier Goffart
3c3619f99a
Exclude: do everything with QString wiuthout converting to char*
2020-12-15 10:58:19 +01:00
Olivier Goffart
69de2d5180
Sync: optimize by removing setFileRecordMetadata
...
Inh most case we already have a record from before, so avoid doing a useless
lookup in the database.
In owncloudpropagator.cpp, directories do not have a checksum so no need
to call a function that preserves it
2020-12-15 10:58:19 +01:00
Olivier Goffart
416a0b3482
Test System: Optimisations so the benchmark is significant
2020-12-15 10:58:19 +01:00
Olivier Goffart
bb9ce8db21
Test that the sync behave well if there are errors while reading the database
2020-12-15 10:58:17 +01:00
Olivier Goffart
7061f31887
Discovery: Fix downloading files when database is used for local discovery
...
This also fix the currently failling LockedFilesTest
2020-12-15 10:58:17 +01:00
Christian Kamm
9d55590d10
Test: Add test for locked file tracking and propagation
2020-12-15 10:58:17 +01:00
Olivier Goffart
2c9b66fe69
RemoteDiscoveryTest: Fix after the merge from 2.5
...
The new discovery's message is slightly different
2020-12-15 10:58:16 +01:00
Christian Kamm
18b9712105
Test: Check for folder in error message #6826
2020-12-15 10:58:16 +01:00
Christian Kamm
1d4e4fafcc
Discovery: Add back virtual file instruction checks
2020-12-15 10:58:12 +01:00
Olivier Goffart
75f66ddaa1
Local discovery: always recurse within touched directory
...
If the file system watcher tells us a directory was modified, we should
recurse into it because it means it is probably a new directory
Issue #6804
2020-12-15 10:58:11 +01:00
Christian Kamm
e10e953c66
PropagateUpload: Avoid crash due to cascading aborts
...
https://sentry.io/owncloud/desktop-win-and-mac/issues/698694072/activity/
2020-12-15 10:58:11 +01:00
Olivier Goffart
640cf0c71e
Fix leaks in tests
...
As discovered by AddressSanitizer
2020-12-15 10:58:11 +01:00
Olivier Goffart
f666511a4b
Discovery: Remove stale DB entries
...
And test the Remove/Remove case.
This means we need to always query the database for all the entries.
This showed another small bug in the test in which sync item for virtual
files at the root could have a slash in front of them.
2020-12-15 10:58:10 +01:00
Olivier Goffart
afed46afcc
New discovery algorithm: Parallel PROPFIND
2020-12-15 10:58:08 +01:00
Olivier Goffart
d25d87e92c
New Discovery Algorithm: Ge tthe size of new folders
...
Also add a test that this works properly
2020-12-15 10:58:07 +01:00
Christian Kamm
e58a25d7c5
Virtual files: Renames propagate #6718
2020-12-15 10:58:07 +01:00
Olivier Goffart
f0ddf179a5
Fix tx.pl
...
The conflict filename changed
2020-12-15 10:58:06 +01:00
Christian Kamm
6b571b609c
Conflicts: Rename BasePath to InitialBasePath #6709
2020-12-15 10:58:05 +01:00
Olivier Goffart
bf6e4174c8
Move the checksum related routine from FileSystem to checksum, where they belong
2020-12-15 10:58:05 +01:00
Olivier Goffart
9c99544e0b
Fix test link with older Qt
2020-12-15 10:58:04 +01:00
Olivier Goffart
c3f745fa76
Conflict handling: add the OC-ConflictBasePath header
...
Issue #6702
2020-12-15 10:58:04 +01:00
Olivier Goffart
73d933115a
Virtual Files: Set the mtime of the virtual file to that of the server
...
Note: When the server mtime is modified, the mtime of the file is not updated
Issue #6727
2020-12-15 10:58:04 +01:00
Christian Kamm
c10f103fb8
Virtual files: Renaming to virtual doesn't delete data #6718
...
Unfortunately to do this, the local update phase must write to the
database, creating a new side-effect and order dependency (local update
must run before remote update).
2020-12-15 10:58:03 +01:00
Olivier Goffart
a670431a48
SyncEngine: Fix renames making hierarchy inversion
...
Issue #6694
2020-12-15 10:58:03 +01:00
Christian Kamm
be0fa72fcb
RemotePermissions: Fix empty vs null
...
Fixes two bugs that appeared since the introduction of the struct:
- when reading permissions from the journal, null ("") was read as
empty-not-null
- when reading permissinos from the server, empty ("") was read as null
Addresses #4608
2020-12-15 10:58:03 +01:00