------ Original Message ------
From: "Graham Cobb" <[email protected]>
To: [email protected]
Sent: 13-4-2014 21:49:45
Subject: Re: [SyncEvolution] Getting the concepts clear (Was: Configuring a target)

On 13/04/14 19:45, Heyns Emiliano wrote:
In addition to this we have 1a: Target-Configs. I think a target-config
 is really what binds two Sync Specifications together to form a full
 sync pair, but I've lost track how; the syncURL seems to play an
important part here, but it has differing usage, sometimes it's used to
 hold a real syncURL (such as
https://www.google.com/calendar/dav/%u/user/?SyncEvolution=Google <safelink(32ce5049-7ac5-4675-8fe9-bf7f5dcf1a2a):https://www.google.com/calendar/dav/%u/user/?SyncEvolution=Google>),
 another time it's use to point to something inside the syncevolution
 config (such as local://@Context). It does feel a bit like a
target-config is only a 'kind of' Sync Config/Peer because the required
 data could be shoe-horned into its data-structure, rather than there
 being real similarity in intended behavior of these two kinds -- I
 wouldn't mind to be corrected on this one.

If we put aside the special case of using target-config with things like
--print-items, then I think target-config makes some sense to me...

If you were syncing two different systems each running SE, using SyncML,
then on each server you would have to set up a peer to point to the
other side. One of them would have the syncUrl to make the outbound
connection with, the other would have information to route the incoming
connection to a particular sync-config and context. That makes sense to me.

If we then consider a local connection, I think of that as just an
optimisation of the connection. It seems logical that you still need a
peer set up in each of the two contexts which are going to be connected
together. One has the syncUrl (local://@context), the other doesn't
actually need anything really but still exists and has to have the name
target-config@context.

So... as Patrick pointed out earlier and I might now begin to grasp... the target-config is the receiving end of the sync pair (Patrick said this verbatim... I think I now understand what he means). local://@context always points to target-config@context, and as target-config@context has an property called 'uri' pointing to a data source in @context, we have a full specification of the second half of the pair.

syncevolution --configure syncUrl=local://@OtherContext peerIsClient=1 Source@Peer

means:
- side a: {source: @AhDamnIDontKnow.Source, peer: @AhDamnIDontKnow.Source}, connects to - side b: {source: @OtherContext.target-config.uri, Peer: @OtherContext.target-config}

After this, calling

syncevolution --sync Source@Peer

would sync exactly this one pair. Except I have no idea in which context. Frig, this is complicated.

If I'm understanding this correctly (and that would be a first), this means that if I'm setting up a sync for my Google contacts and my Google Calendar, I'd need separate contexts for those, as I'd need a separate target-config for each, and each context can have only one of those.

If I'd want to sync an exchange contacts folder with a local vcards folder with my google carddav folder, that's mean I'd have to set up ContactsFolder@Exchange and ContactsFolder@Google, and give them both the same target-config in for example @Local, which has an 'uri' property pointing to a file datasource with vcards, setting up a hub-and-spoke system. Please let this be correct. If I'd then want to do the same for my Calendar, I'd need a new context because @Local cannot have the target-config anymore to be paired up with CalenderColder@Exchange/CalendarFolder@Google.

What do you mean by saying 'target-config doesn't need anything'? At the very least I'd expect it would need 'uri' to be set to point to a fully self-contained data source, or a username/password if the datasource didn't have one.

Emile

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

Reply via email to