← Back to team overview

syncany-team team mailing list archive




Base on the discussion on Database reconciliation, I think it would be
nice to discuss the roadmap. I'm starting a new thread to keep things a
little be organized.

Based on what I see in the code and on what happened to Joey when he
worked on git-annex, I would advise to proceed as follows.

Firstly, I think the real time file watching is going to be a massive
mess. Joey had dozens of problem when he implemented that in git-annex,
with race conditions everywhere to begin with. It seems that others
(http://www.mayrhofer.eu.org/dvcs-autosync for instance) had similar
problems. I'm also confident that the real time notification will prove
to be messy. For instance, think about S3 which does only guarantee
ultimate consistency: when you advertise a new upload on S3, you have
almost no guarantee another client will be able to download it right now
and this can break in several ways (the delta file is not available or
some multichunks are missing).

So I would postpone this part to another release. And then my primary
goal would be to release a command line client with manual syncing and
have it tested by as many volunteers as possible. This would be release
0.1 with no commitment on the file storage format. This last part has to
be super clear because you don't want to have to produce transition
techniques from one format to another.

Then 0.2 target might be to simplify the code which is still very
complex mostly in the database area. So only bug fixing and code
simplification. In particular the database representation (sql storage
and so on) should be done in this part. If this goes well, I would try
to implement a better reconciliation strategy at this point, based on
simpler and easier to use data structures.

In 0.3 I would target the real time thing.

In my opinion, the GUI stuff can wait ;-)

What do you think?

Best regards,


Follow ups