Christian Kamm [Fri, 10 Feb 2017 11:50:35 +0000 (12:50 +0100)]
Doc: For conflicts, the local file is renamed #5521
Jenkins for ownCloud [Fri, 10 Feb 2017 01:18:29 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Thu, 9 Feb 2017 01:18:33 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jocelyn Turcotte [Wed, 8 Feb 2017 16:57:02 +0000 (17:57 +0100)]
Remove unneeded Q_DECLARE_METATYPE
Jocelyn Turcotte [Wed, 8 Feb 2017 16:25:14 +0000 (17:25 +0100)]
Skip TestSyncEngine::abortAfterFailedMkdir
ckamm [Wed, 8 Feb 2017 14:25:02 +0000 (15:25 +0100)]
Merge pull request #5518 from ckamm/asserts
Improve usage of asserts
Christian Kamm [Tue, 7 Feb 2017 09:29:29 +0000 (10:29 +0100)]
CMake: Don't force-enable asserts #5429
Should be safer now that we've gone through asserts and assured that
one ones that should be fatal continue to exist in release builds
independently of QT_NO_DEBUG.
Christian Kamm [Tue, 7 Feb 2017 12:52:15 +0000 (13:52 +0100)]
Double check usage of asserts #5429
A few are supposed to be fatal.
Christian Kamm [Wed, 8 Feb 2017 13:55:18 +0000 (14:55 +0100)]
Performance: reserve() _remotePerm #5496
Olivier Goffart [Wed, 8 Feb 2017 11:33:46 +0000 (12:33 +0100)]
Folder: Change the wording for the massive deletion message
Issue #5503
ckamm [Wed, 8 Feb 2017 13:28:50 +0000 (14:28 +0100)]
Settings: Don't migrate settings on access error #5499 (#5523)
Previously, we'd try migrating from legacy settings if reading
the settings failed with an error. Now, we try again after a
couple of seconds and eventually give up.
Olivier Goffart [Wed, 8 Feb 2017 11:30:32 +0000 (12:30 +0100)]
AccountManager: Fix small leak in the account migration code
The QSettings object was not deleted in every possible code paths
Markus Goetz [Wed, 8 Feb 2017 10:39:28 +0000 (11:39 +0100)]
CentOS: More build fixes
Markus Goetz [Wed, 8 Feb 2017 10:14:31 +0000 (11:14 +0100)]
CentOS: Another attempt
Jenkins for ownCloud [Wed, 8 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Markus Goetz [Tue, 7 Feb 2017 18:40:32 +0000 (19:40 +0100)]
Improve previous fix
After comment on https://github.com/owncloud/client/commit/
78a798eef3eb8d04360c6d9542db55469f59cacd
Markus Goetz [Tue, 7 Feb 2017 18:22:04 +0000 (19:22 +0100)]
CentOS: Another fix for old compiler version (2)
Markus Goetz [Tue, 7 Feb 2017 18:04:00 +0000 (19:04 +0100)]
ChangeLog for 2.3 additions
Markus Goetz [Tue, 7 Feb 2017 17:54:40 +0000 (18:54 +0100)]
Old Qt: Another build fix
Markus Goetz [Tue, 7 Feb 2017 17:32:34 +0000 (18:32 +0100)]
CentOS: Another fix for old compiler version
Markus Goetz [Tue, 7 Feb 2017 17:05:29 +0000 (18:05 +0100)]
CentOS: Fix build for old compiler version
Markus Goetz [Tue, 7 Feb 2017 16:35:04 +0000 (17:35 +0100)]
Revert "Disable RTTI"
This reverts commit
85d3de15898385a06b2f34479e875c885e5df6be.
This breaks our old Qt on CentOS.
We can re-introduce this with #5470
Jenkins for ownCloud [Tue, 7 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Mon, 6 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sun, 5 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 4 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Fri, 3 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Thu, 2 Feb 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Wed, 1 Feb 2017 01:18:28 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Tue, 31 Jan 2017 01:18:26 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Mon, 30 Jan 2017 01:18:28 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sun, 29 Jan 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 28 Jan 2017 01:18:34 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 28 Jan 2017 00:15:15 +0000 (01:15 +0100)]
[tx-robot] updated from transifex
Olivier Goffart [Fri, 27 Jan 2017 16:45:05 +0000 (17:45 +0100)]
Merge remote-tracking branch 'origin/master' into 2.3
We can do that because the only changes that were in master but not in 2.3 were the
translations change and documentation change, and the support for the 'M' permission
which we want in 2.3.
Olivier Goffart [Thu, 26 Jan 2017 09:14:30 +0000 (10:14 +0100)]
Account Wizard: don't whitelist everything on the first sync if we still want to confirm big folder
Issue: https://github.com/owncloud/client/pull/5340#issuecomment-
274564441
Olivier Goffart [Thu, 26 Jan 2017 09:00:19 +0000 (10:00 +0100)]
General Settings: Make sure to reload the settings when an account is added
The Size limit, or confirmation checkboxes might have changed.
We need to guard against saving if the control changes while we are loading
Issue: https://github.com/owncloud/client/pull/5340#issuecomment-
274878023
Olivier Goffart [Thu, 26 Jan 2017 08:03:01 +0000 (09:03 +0100)]
Confirm External Storage: adjust the notification message
We need to forward the information that the folder is an external storage
for the notification message.
Issue: https://github.com/owncloud/client/pull/5340#issuecomment-
274878023
Olivier Goffart [Wed, 25 Jan 2017 19:22:54 +0000 (20:22 +0100)]
Wizard: Increase the size
The advanced page has become quite complex and does not fit on the screen
anymore if the fonts are too big
Olivier Goffart [Tue, 24 Jan 2017 14:39:08 +0000 (15:39 +0100)]
FolderStatusModel: Different icon for external storages
Issue: https://github.com/owncloud/client/pull/5340#issuecomment-
274564441
Olivier Goffart [Tue, 24 Jan 2017 12:25:03 +0000 (13:25 +0100)]
Discovery: Filter 'M' out of permissions for non root storage
The sync engine rely on the 'M' in premission to ask for confirmation
(As requested in issue #5340)
But we only want to ask the premission for the 'root' of the mounting point and not
for every subfolders within it.
So we change the discovery phase in a way that it does not keep the 'M' for
children within the external storage.
Olivier Goffart [Tue, 24 Jan 2017 09:16:10 +0000 (10:16 +0100)]
Wizard: Add options to ask confirmation for external storage
Added two checkboxes in the Account Wizard in the advanced page to change the first options.
Also added a checkbox in the general settings to ask for confirmation for external storages.
Theme options allow to hide the checkboxes in the wizard.
As described in issue #5340
Olivier Goffart [Tue, 29 Nov 2016 09:36:37 +0000 (10:36 +0100)]
Discovery: Add branding option to disable default sync of 'M' directories
Issue #5331 and https://github.com/owncloud/enterprise/issues/1594
Jenkins for ownCloud [Fri, 27 Jan 2017 01:18:28 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jocelyn Turcotte [Thu, 26 Jan 2017 14:59:27 +0000 (15:59 +0100)]
Remove PropagateDirectory::_runningNow
This variable isn't used anymore except in a stray Q_ASSERT.
Jocelyn Turcotte [Thu, 26 Jan 2017 13:25:31 +0000 (14:25 +0100)]
Clear SyncEngine::_remotePerms after the sync
Also make reuse the SyncFileItem::_remotePerm QByteArray allocation
instead of redoing the copy from the csync char*.
Jocelyn Turcotte [Thu, 26 Jan 2017 12:41:04 +0000 (13:41 +0100)]
Pack boolean members in PropagateUploadFileCommon #5457
Jocelyn Turcotte [Thu, 26 Jan 2017 12:40:10 +0000 (13:40 +0100)]
Don't use the StopWatch for each job in production builds #5456
This accounted for more than 10% of the peak memory usage while only
providing value through the debugging log.
Jocelyn Turcotte [Thu, 26 Jan 2017 12:39:00 +0000 (13:39 +0100)]
Remove SyncFileItem::_requestDuration #5456
This will save a QElapsedTimer in each job that was used only for
.owncloudsync.log (for which the request duration doesn't bring much
value).
Jocelyn Turcotte [Thu, 26 Jan 2017 11:17:00 +0000 (12:17 +0100)]
Don't reallocate a QByteArray for each contentChecksumType call #5481
Jocelyn Turcotte [Wed, 25 Jan 2017 13:53:10 +0000 (14:53 +0100)]
Remove duplicate SyncFileItem entries for the log
The accuracy of that log isn't as important as the few bytes those
fields take as hostage for the whole sync.
Markus Goetz [Thu, 26 Jan 2017 11:29:32 +0000 (12:29 +0100)]
Don't create legacy 'folders/' subdirectory
Markus Goetz [Thu, 26 Jan 2017 09:54:03 +0000 (10:54 +0100)]
Cookies: Use different DB for different accounts (#5490)
This is a follow up to #5469
Piotr Mrówczyński [Thu, 26 Jan 2017 09:03:22 +0000 (10:03 +0100)]
Delete finished propagation jobs in PropagateDirectory #5269 (#5400)
Jenkins for ownCloud [Thu, 26 Jan 2017 01:18:40 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jocelyn Turcotte [Wed, 25 Jan 2017 10:28:18 +0000 (11:28 +0100)]
Release SyncFileItem objects with their job
We now delete subjobs as their propagation is complete. This allows us
to also release the item by making sure that nothing else is holding a
reference to it.
Remove the stored SyncFileItemVector from SyncEngine and SyncResult
and instead gather the needed info progressively as each itemCompleted
signal is emitted.
This frees some holes on the heap as propagation goes, allowing many
memory allocations without the need of requesting more virtual memory
from the OS, preventing the memory usage from increasingly growing.
Jocelyn Turcotte [Wed, 25 Jan 2017 10:12:38 +0000 (11:12 +0100)]
Pass the SyncFileItem as SyncFileItemPtr in itemCompleted
This will allow us to keep a reference on the items in connected slots.
Jocelyn Turcotte [Wed, 25 Jan 2017 13:09:44 +0000 (14:09 +0100)]
Don't pass the PropagatorJob in itemCompleted
This was to catch duplicate emissions for PropagateDirectory but we
don't emit this signal anymore from there.
This fixes a warning about PropagatorJob not being a registered metatype.
This reverts commit
fe42c1a818c3b1ccadb2e9557971b62a350573b4.
Jocelyn Turcotte [Mon, 16 Jan 2017 16:13:52 +0000 (17:13 +0100)]
Tests: Add a large sync benchmark
This simulates a ~50k files sync that can be used to measure memory
usage without having to wait for a server.
Jocelyn Turcotte [Tue, 24 Jan 2017 16:57:52 +0000 (17:57 +0100)]
Bring back the error message if the sync-exclude.lst file is missing
We unconditionnally add the file on startup, but don't check for errors.
During sync we check for errors, but only try loading the file if it
exists.
Markus Goetz [Wed, 25 Jan 2017 18:45:20 +0000 (19:45 +0100)]
Merge remote-tracking branch 'origin/selective-sync-big-folder' into 2.3
Olivier Goffart [Wed, 25 Jan 2017 18:19:48 +0000 (19:19 +0100)]
Merge pull request #5480 from owncloud/chunking-ng-cleanup
Chunking ng cleanup
Jenkins for ownCloud [Wed, 25 Jan 2017 01:18:34 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Matthew Setter [Wed, 18 Jan 2017 12:54:55 +0000 (13:54 +0100)]
Add extra note about deleting .csync_journal.db
This is added as per the recommendation from @guruz in #5252.
Carla Schroder [Thu, 13 Oct 2016 00:36:28 +0000 (17:36 -0700)]
add note about deleting .csync_journal.db for "CSync unknown error"
Christian Kamm [Tue, 24 Jan 2017 12:09:38 +0000 (13:09 +0100)]
Shib: Use different keychain entry per account #5469
Previously shib multiaccount didn't work at all because the
session cookie was stored in the same keychain entry.
Christian Kamm [Tue, 24 Jan 2017 09:26:03 +0000 (10:26 +0100)]
Folders: Adjust ui when account is disconnected #5477
Previously if you paused/unpaused a folder for a disconnected account
they would prepare to sync and thus display the 'Waiting...' text. With
this change, folders that can't possibly sync don't show text like
this.
When account connectivity changes, all unpaused folders will be
scheduled anyway.
Jenkins for ownCloud [Tue, 24 Jan 2017 01:18:28 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Mon, 23 Jan 2017 10:11:23 +0000 (11:11 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sun, 22 Jan 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Sat, 21 Jan 2017 01:18:28 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Olivier Goffart [Fri, 20 Jan 2017 15:03:50 +0000 (16:03 +0100)]
ChunkingNG: add '0' padding on the filename (#5476)
The server sorts the chunk by name alphabetically. So if we want to keep
the chunk in order, we need to add a few '0' in front of the chunk name
Markus Goetz [Fri, 20 Jan 2017 15:00:50 +0000 (16:00 +0100)]
Update issue_template.md
Olivier Goffart [Fri, 20 Jan 2017 13:38:21 +0000 (14:38 +0100)]
ChunkingNG: Add some tests
- Test that we recover correctly if the chunks were removed on the server.
- Test changing the file localy while uploading.
Olivier Goffart [Fri, 20 Jan 2017 12:59:13 +0000 (13:59 +0100)]
ChunkingNG: remove stale chunks when cleaning the uploadInfo table
Stale chunks might be there because a file was removed or would just not
be uploaded, for any reason.
We just start the DeleteJob but we don't care if it success or not.
Relates to https://github.com/owncloud/core/issues/26981
One of the test is testing the case where the file is modified on the server
during the upload. So this test the precondition failed error.
The FakeGetReply logic was modified because resizing a 150MB big QByteArray
by increment of 16k just did not scale when downloading a big file.
Olivier Goffart [Fri, 20 Jan 2017 11:06:20 +0000 (12:06 +0100)]
ChunkingNG: delete stale chunks if the file was changed locally
Relates to https://github.com/owncloud/core/issues/26981
We do not track the success or error of the DeleteJob because it does not
matter. If it fails, it might be because the chunks were already removed.
If not, the chunks will be stale, but the server must anyway do a few
cleanup from time to time because we do not always remove the chunks
Jenkins for ownCloud [Fri, 20 Jan 2017 01:18:34 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jenkins for ownCloud [Thu, 19 Jan 2017 01:18:40 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Jocelyn Turcotte [Wed, 18 Jan 2017 14:40:52 +0000 (15:40 +0100)]
StatusTracker: Emit OK for the last child before parents (#5467)
The current logic tried to avoid a DB lookup just to fetch whether
the file is shared or not since that info is already in the
SyncFileItem. The implementation would however need to decrease the
sync count for itself (and parents) before emitting the new status,
thus emitting the OK status for parents before that last child that
ended the propagation for that folder.
Change the implementation to achieve what we want: give the
possibility to decSyncCount to use a pre-fetched sharing state while
still doing the emission for all involved files. This ensures that
the leaf file also gets its status emitted before its parents.
Issue #4797
Samuel Alfageme [Wed, 18 Jan 2017 13:46:47 +0000 (14:46 +0100)]
Reference to build Qt5 with qtwebkit support in the docs #5129 (#5471)
This addresses the issue only on OS X. It should be stated though, that qtwebkit is not part of the qt5core lib and therefore a requirement for the projectto build in the rest of the OSS
Jocelyn Turcotte [Wed, 18 Jan 2017 11:52:17 +0000 (12:52 +0100)]
shell/Windows: Update binaries to build 44
Matthew Setter [Wed, 18 Jan 2017 11:07:18 +0000 (12:07 +0100)]
Update the MacOS automatic update instructions
As requested in #5431, the automatic update instructions for MacOS X
have been simplified; removing the older, incorrect instructions.
Matthew Setter [Wed, 18 Jan 2017 11:24:42 +0000 (12:24 +0100)]
Fix several typos in the client documentation
Jocelyn Turcotte [Mon, 9 Jan 2017 15:28:26 +0000 (16:28 +0100)]
shell/Windows: Avoid memory allocations and copies when querying icons
IsMemberOf is called for every file (in the ownCloud directory or not) and
with every instance of OCOverlay (we have 5) when displaying a list of
files in Explorer.
Refactor the code to avoid copying the list of watched directories, as
well as creating a wstring from a PWWSTR for files outside watched
directories.
Also change some calls of begin_with to use isDescendantOf since it
properly handles parent paths not ending with a backslash, which could
lead to SocketAPI queries for sibling folders with a name that starts with
a watched folder name.
Jocelyn Turcotte [Mon, 9 Jan 2017 13:25:00 +0000 (14:25 +0100)]
shell/Windows: Fix the view not being updated on StateError
Since StateError == 0, if this was the status used when the path
isn't in the map already, the view would not be updated since the
new state would be the same as the default-constructed state in the
map. Fix by explicitly inserting in that case, this also avoid aving
to do two lookups in the map when a path already has an entry.
Jocelyn Turcotte [Thu, 5 Jan 2017 16:45:39 +0000 (17:45 +0100)]
shell/Windows: Remove the UPDATE_VIEW message handling
The client now tries to only push STATUS messages to connections
unless they previously requested it with a RETRIEVE_FILE_STATUS,
but this means that we now have to make sure that a new connection
will rerequest every icon that the user will see on files from that
point on.
To that end, we now send a SHChangeNotify for every file in the cache
when we lose the connection (or on UNREGISTER_PATH) to make sure that
what's on the screen matches what's in the cache. We also remove the
_oldCache logic that made this more difficult to enforce.
The client has been able to reliably push status updates on macOS
for a few versions now, and we don't need it on Windows either. The
_oldCache mechanism was to avoid sending to many update requests
when receiving an UPDATE_VIEW.
Also fixes #4766
Jocelyn Turcotte [Thu, 5 Jan 2017 16:28:28 +0000 (17:28 +0100)]
shell/Windows: Convert tabs to space
It was a mix of both and the rest of the code uses spaces.
Jocelyn Turcotte [Thu, 5 Jan 2017 16:01:32 +0000 (17:01 +0100)]
shell/Windows: Remove unused files
The real OCContextMenu.cpp is in the OCContextMenu folder.
Jocelyn Turcotte [Wed, 11 Jan 2017 17:17:27 +0000 (18:17 +0100)]
shell/macOS: Make sure the root folder's cache is cleared on disconnect
The SocketAPI now only sends status pushes for paths requested by the
shell. We have to make sure that Finder doesn't just show the entry
from its cache after a reconnect.
Jocelyn Turcotte [Mon, 12 Dec 2016 11:18:51 +0000 (12:18 +0100)]
shell/macOS: Remove backslashes from the extension display name
Tell cmake not to escape shell strings adding backslashes before
spaces by passing the VERBATIM optiton. Also add the quotes to
whole command line arguments to prevent quotes from appearing on the
XCode side, because of the VERBATIM option.
This only affects themed clients since the default theme doesn't
have space in its APPLICATION_NAME.
Jocelyn Turcotte [Wed, 11 Jan 2017 17:27:22 +0000 (18:27 +0100)]
SocketAPI: Only push status for files requested by the shell #5361
We currently push the SYNC status for all files that will be propagated,
and then the OK status when those files are propagated.
On top of this, we send those statuses to all clients connected, even
if the socket is kept open by an application that only needed to show
a file open dialog. On macOS we're also using an NSConnection which
means that we have to wait for the RPC call to return from the
extension, which makes bulk status changes possibly heavy.
Reduce the time spent needlessly sending status pushes by limiting
them to files requested through that socket since it connected.
To limit the data to store, only remember the parent directory of
files requested, and store those in a bloom filter.
Note that this adds a requirement to shell extensions: they should
make sure that the status cache only contains entries that have been
requested through the socket API. In other words, the status cache
must be empty when each socket client connects to the socket API.
Otherwise the cached icon type will be shown to the user, and the
SocketAPI won't push new status for that file if it didn't receive
a RETRIEVE_FILE_STATUS.
Jocelyn Turcotte [Wed, 11 Jan 2017 17:31:08 +0000 (18:31 +0100)]
SocketApi::slotReadSocket: Small optimizations
- Use the looked-up method index also for the invocation
- Do the method name concatenation already on QByteArray since we'll
convert anyway
- Use staticMetaObject instead of metaObject()
Jocelyn Turcotte [Wed, 11 Jan 2017 17:26:35 +0000 (18:26 +0100)]
SocketAPI: Remove unecessary null-checks
Those methods are private and there is only one call-site, we can
be sure that this parameter won't be null already.
Olivier Goffart [Wed, 18 Jan 2017 10:45:46 +0000 (11:45 +0100)]
Sync Engine: Specify what chars are not syncable in the error message #1733 (#5449)
Olivier Goffart [Wed, 18 Jan 2017 09:19:05 +0000 (10:19 +0100)]
Fix more compilation errors with Qt 4
Ammand last commit which was a fixup to the change from pull request #5468
for issue #5453
Olivier Goffart [Wed, 18 Jan 2017 08:55:28 +0000 (09:55 +0100)]
Fix compilation with Qt 4
Fixup to the change from pull request #5468 for issue #5453
Jenkins for ownCloud [Wed, 18 Jan 2017 01:18:27 +0000 (02:18 +0100)]
[tx-robot] updated from transifex
Markus Goetz [Thu, 5 Jan 2017 20:32:52 +0000 (21:32 +0100)]
NSIS: Adjust to 5.6.2 image
Christian Kamm [Tue, 17 Jan 2017 13:52:44 +0000 (14:52 +0100)]
Folder: Remove unused variable
Markus Goetz [Fri, 13 Jan 2017 15:24:18 +0000 (16:24 +0100)]
Disable RTTI
Shrinks owncloud binary by 24 KB and libowncloudsync by 14 KB.
I don't know if it has influence on memory usage or runtime speed though.
Was worth a try.