On Sun, Apr 19, 2015 at 12:24 PM, Oswald Buddenhagen
<[email protected]> wrote:
> the next question is whether anyone uses the Flatten option with
> anything but the dot as separator? i suspect no, so i'd take away that
> configurability.
Sorry for the late reply. Yes, I do use `Flatten` with `#` as the
separator instead of `.`. (In fact before there was this option I had
applied a patch to allow hierarchical IMAP folders and flatten them
with such a pattern.)
> Verbatim - verbatim folder names: top/sub/subsub
> Legacy - subfolder names are prefixed with dots: top/.sub/.subsub
> (default for backwards compatibility reasons)
> Maildir++ - subfolder names are joined with dots and the
> result is prefixed with another dot: top/.sub.subsub
> (this is what the Legacy format should have been to start with)
> Flatten - folder names are joined with dots: top.sub.subsub
A minor comment: except `Flatten`, all the others seem to introduce
some naming ambiguity, because a maildir already has `cur`, `new` and
`tmp` folders, plus a few other `.*` files used by `mbsync` and
perhaps other external tools. Therefore adding new `.*` folders for
the IMAP sub-folders would introduce some naming ambiguity especially
when one uses other tools that create `.*` folders or files. (That is
why I use `Flatten` option.)
For example I have `.md5` folders, with timestamped `md5sum` outputs,
under each maildir to checksum my email files, and I use Git in the
"top" directory to snapshot everything.
If I would to implement it from scratch, and having hierarchical
maildirs would be the requirement, I would go with the following
rules:
* given a target folder for `mbsync` to store emails into, all its
children must obey the following rules;
* all names starting with `_` are reserved to `mbsync`;
* all names starting with `.` are ignored by `mbsync`, and any tool
(including `mbsync`) is free to create files or folders starting with
`.`;
* all other children must folders and have names starting with either
a letter, a number, or a set of limited special characters like `[`
and a few others; these folders must obey the same rules as the
target folder; (i.e. apply rules recursively, thus yielding a
hierarchical structure;)
* a special folder named `_maildir` is to be used as a maildir to
store the emails for the current folder; (i.e. it contains only
`cur`, `new`, and `tmp`;)
* inside the `_maildir` folder all files or folders starting with `.`
are ignored by `mbsync`;
Based on your example such a hierarchy would look like:
* top
* _maildir
* cur, new, tmp
* .something
* sub
* _maildir
* cur
* .something
* subsub
* _maildir
* new
* .something
Thus with such a structure all ambiguity is gone, and finding, for
example, all email files is as simple as:
find /target/ \
-type f \
\( -path '*/_maildir/cur/*' -o -path '*/_maildir/new/*' \) \
-not -path '*/.*/*' \
-print
> objections? better ideas?
Please allow `Flatten` to specify the separator.
Thanks,
Ciprian.
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
isync-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/isync-devel