Matthieu Moy <[EMAIL PROTECTED]> writes: > I'd change this slightly: > > +-----------------------------------------------------------------+ > | Common UI (that autodetects the back-end) | > +---------------+-------------------+------------------+----------+ > |Bazaar (Xtla) | Mercurial (xgh) | Bazaar 2 (bzr) | ... | > |+-------------+|+-----------------+|+----------------+| | > ||Xtla core ||| xhg core ||| bzr core || | > |+-------------+|+-----------------+|+----------------+| | > +---------------+-------------------+------------------+----------+ > | DVC core | > +-----------------------------------------------------------------+ > > Ideally, the common UI would work like nn___.el in Gnus : You can > simply take a nn<something>.el, add it to your load-path and start > using it, without adding any reference to it in the core of Gnus. > > So, the top layer is not as trivial as it seems to be, and I'd like to > have the top and the bottom before having too many features in the > middle.
This looks good to me. One thing I'd suggest is having some agreed upon way of having backend-specific functionality. For example, if xhg has some amazing feature that isn't shared across version control systems (and therefore isn't in the common UI), it'd be nice to still be able to have that functionality. While I really prefer to have a clear separation between the UI and the backends, I think in practise there will always be places you want to break that abstraction. At least if we design for that it won't end up an ad-hoc mess later. Cheers, Mark -- Mark Triggs <[EMAIL PROTECTED]>
