[Unison-hackers] [unison-users] Unison aborts all the synchronization after a permission issue

Jerome Vouillon Jerome.Vouillon at pps.jussieu.fr
Mon Jul 27 08:57:39 EDT 2009


Hi Benjamin,

> >- With this patch, errors deep inside a directory are not reported to
> > the user.  Unison should report them all while still allowing to
> > propagate the directory.
>
> I guess this can be handled by adding an optional error annotation
> to directories in the result of update detection?

This can be handled during reconciliation.  I have extended the type
[Common.replicas] to hold a list of errors for each replica.  The
[propagateErrors] function can now collect all errors in a directory
instead of returing a single [Problem].

But this is mainly a UI issue.  For the text UI, I use a difference
arrow "--?->" to indicate a partial synchronization (feel free to
change it if you have a better idea).  The "show details" key will
list all update detection errors.  For the GTK UI, I use an orange
arrow and their is a new "Details" button on the tool bar to get the
list of errors.  For both UIs, the number of partially transferred
directories is also reported after transport.  The Mac OS UI does not
allow partial synchronization yet.

> >- Overwriting (or deleting) a directory with deep errors will fail
> > during propagation.  We should either forbid the user from
> > attempting to overwrite such a directory, or relax the checks in
> > function Update.checkNoUpdates. (Or implement partial deletion.)
>
> Although we've already got a lot of switches, I wonder if we should
> add one more to control this.  But I think the default should be the
> more convenient and slightly less safe way.  Partial deletion seems
> confusing.

At the moment, I have not addressed this: deleting a directory with
deep errors will fail during propagation.  Maybe this is good enough?
Unison will fail late, but the user still has a clear explanation of
what went wrong.

-- Jérôme


More information about the Unison-hackers mailing list