On 08/04/2014 18:21:35, "Patrick Ohly" <[email protected]> wrote:



The settings of a data source are not limited to just three properties.
Currently defined are:

syncevolution --source-property ? | grep -v '^ '

sync (disabled, unshared, required)
uri (no default, unshared)
backend (select backend, shared)
syncFormat (no default, unshared)
forceSyncFormat (FALSE, unshared)
database = evolutionsource (no default, shared)
databaseFormat (no default, shared)
databaseUser = evolutionuser (no default, shared), databasePassword = evolutionpassword (no default, shared)
OK, sweet.

Some of these (the unshared ones) are only relevant as part of a sync,
the others (the shared ones) are also relevant for just the data access.
OK, good to know.


Correct. <config> basically is a place holder for lots of things.

That's part of what makes the manuals and HOWTOs hard to understand. For a new user, it's very hard to figure out what concept is in play.

Except that the <config> has to be given, even if it is empty. That's
because the position of the non-keyword parts of the command line
matter: the first non-keyword is the config, the rest are source names.
So omitting it entirely won't fly. Good, that makes things easier.


Perhaps more examples would help. <shrug>
I don't actually think more examples are needed. I think the examples might be aligned better not to implement any specific goal, but specifically to highlight concepts. That's what I'm working towards now.


>No. "my-vcard-source" is the source config in the "@default" context.
 >Think of the context as a folder in a file system which can contain
 >items of different types: source configs, sync configs.
 >
OK, so config names (sync and source) are unique within a context, and source config names always identify a single data source. If there is a one-on-one correspondence between data sources and source configs, why
 do these exist as separate concepts?

There is no real difference. As the terminology entry says, "data
source" is "primarily used for the configuration which combines backend
and database settings".
OK, so I could safely substitute 'source config' anywhere where I might use 'datasource'. If that's the case, my HOWTO is going to use 'source config' systematically.

 So a "peer" isn't really a SE concept, then?
SyncEvolution did not invent the term, yes. It gets defined anyway, to
make it clear in which meaning it is used.
OK, then my howto is going to drop the work 'peer' too.

 We just have contexts, data
sources and sync configs. What is meant with "enable access" above BTW?

Consider a SyncML client talking to SyncEvolution as a SyncML server.
Which data sources is that particular client allowed to access via
SyncML? The answer may be different for different clients, so that's
"enable access" via the sync property of the client controls.
Alright! Now I get it!

Fair enough. But then try to describe how these hierarchical lookup
would be configured and debugged ("Where did this value of loglevel come
from?"). I suspect that it would get more complex elsewhere.
That's currently also hard, right? Because some properties can be defined at more than one place. Anyhow, no biggie. It just describes my personal preference.

  Could they all have been defined in a single context? What would have
 been the pros/cons of that?
They could have. The advantage of a single context is that one can do
"syncevolution --remove @google" and get rid of everything related to
Google. The disadvantage is that in a setup where you have one local
system address book that gets synced with multiple peers, having the
data source for that address book under "@google" would be inconsistent
for the other peers.
OK, good. I was just trying to understand how these contexts can be used, I didn't have any plans for them other than the use you showed before.


 And because it doesn't have a target-config, right? Otherwise it would
have set up a target-config instead. Or is it the peerIsClient? Because
 it looks very similar to the command

 syncevolution --configure printChanges=0 loglevel=3 syncURL=none
 target-config@google

which set up the target-config. What exactly makes SE decide to do one
 or the other?

Primarily the usage. A sync config is what you use when triggering a
sync. That config then has to be set up correctly:
     1. Must have a valid syncURL.
     2. For a local sync, currently only peerIsClient=1 is valid. There
        is no meaning defined for peerIsClient=0 yet, but that might
        change, and therefore it is needed.

Right! So use determines whether it is a sync or a source config! A config in and of itself is just a bag of properties!

 OK, so if I do remote@local for simplification I can't go wrong?
I don't follow here.
If I am constructing a sync config (by Jove, I might be getting the concepts right at this point!), would it be sensible to always name these <a name that implies remote>@<a name that implies local>?

Sorry; I meant to say "is this why I repeat the credentials in the setup
 of the datasource and of the sync config"?
Repeating the Google credentials in the target-config is not necessary
if they were already set as databaseUser/Password for the individual
source(s).
And visa versa? If I define them in the target-config, can I omit them for the source configs?

Ah no I understand that, but can a single command set up multiple data
 sources?
Yes. I think I mentioned the syntax already in this thread, but I don't
remember when.

--configure backend=eds-events @default calender
and
--configure backend=eds-contacts @default addressbook

can be combined into
--configure calendar/eds-event \
            addressbook/backend=eds-contacts \
            @default addressbook calendar
Okay... it's good to know that this can be done, and it answers my question, but it maps

--configure backend=b1 @context s1
--configure backend=b2 @context s2

to

--configure s1/b1 s2/backend=b2 @context s2 s1

for which I can't readily see a rule governing the transformation, so I'll take this as noted and stay away from it in my HOWTO.

Regards,
Emile

_______________________________________________
SyncEvolution mailing list
[email protected]
https://lists.syncevolution.org/mailman/listinfo/syncevolution

Reply via email to