Hi Patrick,
On Thu, 4 Nov 2010, Patrick Ohly wrote:
No surprise, I never really expected it to be complete ;-}
But it gave a good hint to me to allow at least one synchronisation.
"addressbook" is the real local name. The "URI"
property sets an alias.
That should be checked somewhere by the code, so if you update your
SyncEvolution contact to have "uri = Contacts" in
"addressbook/config.ini", then it might work without the explicit
isDatastore hack.
I tried different uri parameters, fName is always “addressbook”, even if
the XML shows <alias name='Contacts'/>. See the following gdb snippet:
Starting program: /home/knipp/opt/bin/syncevolution --run -z uri=Contacts c510
addressbook
[…]
Breakpoint 1, sysync::TSyncDataStore::isDatastore (this=0xc55870,
aDatastoreURI=0xc551c8 "Contacts")
at
/home/knipp/Downloads/syncevolution-1.1-c510/./src/synthesis/src/sysync/syncdatastore.cpp:146
146 if(!strcmp(fName.c_str(),"addressbook") &&
!strcmp(aDatastoreURI,"Contacts"))
(gdb) p fName.c_str()
$7 = 0xc696c8 "addressbook"
You can try it out by yourself by setting aLocalDatastoreURI to an empty
string at line 3622 and changing line 4612 of syncsession.cpp to
if (true || target.empty()) {
These changes would simulate the behaviour I see on the phone.
The synchronisation of the address book items itself shows some errors,
but this might be because of the address book data, so I'll clean up the
address book on the phone (after doing a backup) to start from scratch.
Kind regards,
Franz