[ I guess you wanted a wide reply ... ]

Stefan Reichör <[EMAIL PROTECTED]> writes:

> Matthieu Moy <[EMAIL PROTECTED]> writes:
>
>> Masatake YAMATO <[EMAIL PROTECTED]> writes:
>>
>>> Layers I image:
>>> +--------------------------------+------------------------+
>>> |            dvc-ui              |                        |
>>> +--------------------------------+                        |
>>> |              per version contsol system ui              |
>>> +------------------+--------------------------------------+
>>> |      dvc-core    |     per version contsol system core  |
>>> +------------------+--------------------------------------+
>>
>> 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.
>
> I like that approach. I already implemented some steps towards it as a
> discussion base.
>
> * dvc-register-dvc can be used to register a new system
> * dvc-current-active-dvc returns the currently active dvc
>   It scans dvc-select-priority to find the first matching system
> * One thing that is not fully clear is, how to set dvc-select-priority
>   - Set it in dvc-register-dvc
>     + drawback: the order depends on the load order
>     + drawback: the lists gets long, testing is probably no cheap operation
>     + advantage: No further settings necessary
>   - The user should customize it
>     + drawback: more work for the user
>     + advantage: the user knows what he wants
> * xhg-tree-root, tla-tree-root are the first set of specific functions
>   that must be implemented for every dvc
>
>
> Comments?

My suggestion regarding priorities would be:

* The user can customize dvc-select-priority

* There is anyway a dvc-registered-backend-list or stg like this, that
  contains all the backends.

* DVC searches in dvc-select-priority first, and if it doesn't find
  it, then take the first matching item in
  dvc-registered-backend-list.

-- 
Matthieu

Reply via email to