[Kde-pim] Proper way to sync collection moves

Krzysztof Nowicki krissn at op.pl
Tue May 10 14:27:53 BST 2016


Hi,

W dniu 2016-05-10 13:32:40 użytkownik Daniel Vrátil <dvratil at kde.org> napisał:
> On Tuesday, May 10, 2016 12:07:19 PM CEST Krzysztof Nowicki wrote:
> > Hi,
> 
> Hi, 
> 
> 
> > I've been debugging some collection sync issues in the EWS resource and I
> > wonder what is the correct way to tell Akonadi that a collection was moved.
> > 
> > What happens now is that when I move a folder from one parent to another I
> > receive a notification from Exchange that the moved folder has changed. This
> > triggers a collection tree sync for the resource. The EWS resource then
> > retrieves the details about the folder including the new parent collection.
> > It then creates an empty local collection for the folder, populates it with
> > data and also creates an empty collection for the parent folder only to
> > give an indication about the parent remote id. Finally it uses
> > collectionsRetrievedIncremental() to deliver the updated collection.
> > 
> > Unfortunately what I see is that Akonadi creates a new collection under the
> > new parent instead of reparenting the existing collection. The old
> > collection is not deleted, which leads to two collections with the same
> > remote id. I was expecting that it would figure out that there is already
> > an existing collection with the same remote id and would update it instead
> > of creating a new one.
> 
> Using Hierarchical Remote IDs (HRIDs) should help so try enabling 
> ResourceBase::setHierarchicalRemoteIdentifiersEnabled(). With HRIDs the 
> CollectionSync will always consider the parent collection chain when resolving 
> move. Without HRID, just having "kde-pim" as an identifier could be ambiguous. 
> But when you enable HRID Akonadi will also consider parent RemoteID, thus 
> disambiguating "kde-pim" collections in "INBOX/ml/kde-pim" and "INBOX/commits/
> kde-pim" 
> 
> Looking into CollectionSync, the move detection path is only enabled when 
> HRIDs are enabled, so try that.

When I turned on RHIDs I actually noticed that the incremental sync doesn't work
at all. Do I assume correctly, that in case of RHIDs when I sumbit a changed
folder I need to provide the full collection chain up to the root? Otherwise the
CollectionSync is unable to construct the absolute RID for the collection.

Chris

> 
> Dan
> 
> > 
> > Is there something I'm doing wrong?
> > 
> > Regards
> > Chris
> > _______________________________________________
> > KDE PIM mailing list kde-pim at kde.org
> > https://mail.kde.org/mailman/listinfo/kde-pim
> > KDE PIM home page at http://pim.kde.org/
> 
> 
> -- 
> Daniel Vrátil
> www.dvratil.cz | dvratil at kde.org
> IRC: dvratil on Freenode (#kde, #kontact, #akonadi, #fedora-kde)



_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list