On Mon, 22 Jul 2013 12:20:44 +0200
Stephan Beal <sgb...@googlemail.com> wrote:

> On Mon, Jul 22, 2013 at 12:09 PM, Eduardo Morras <emorr...@yahoo.es> wrote:
> 
> > ...No, not as hooks, but as plugins. I think that include a scripting
> > engine is great, I'm a lua user, but force to use only one not. Allowing to
> > call external have this advantages:
> >
> > a) Not tied to one scripting language
> > b) In smp environments, the script will run on other processor (or even
> > remotely)
> > c) It can work asyncronous, fossil may not wait the script ends
> >
> 
> For some checks Fossil _must_ wait on the script to end. How can it do a
> commit confirmation check if it doesn't wait on the results?

Xcb uses an async mechanism, it creates a cookie, sends it and data to the 
external code, keep working. External code calls xcb, sends the cookie with the 
answer. Data and cookie can be exchanged through sql table.

> To be clear, i often use the words hook/plugin/trigger interchangeably.

They are different. A hook is capability we add to a function, as a anonymous 
function pointer. This way we can "hook" the any function to program flow, 
changing it. A plugin is a module that adds capabilities to program. For 
example Sqlite3 has plugin mechanism to add external aggreagate calculations. A 
trigger is code that executes other code when some conditions met. 

So the difference is that a hook allows a plugin work when the trigger wants.

> > Perhaps I mixed the concept of user and role. I thought more about the
> > concept of file owner. By default all users owns all files, but some roles,
> > like superuser or project architect, own some files or dirs and only
> > him/her/it can modify them.
> >
> 
> i think that would be impossible to implement properly in a DVCS (it would
> be possible in a centralized SCM). When i clone your repo, i need access to
> ALL of the files i cloned. If i cannot check out or modify certain files
> just because you "own" them, the repo is useless to me. It means that if a
> developer dies (as they occasionally do) then all of his locks are there
> forever. This doesn't sound realistic to me. One of the things fossil
> promises which other SCMs do not is "forever" - it's data format is
> designed to outlive the software, which means that in 200 years someone
> could read the fossil data format, import an ancient sqlite3 fossil DB into
> his sqlite27 db, and get back to work. Except that now he can't make
> changes because the files in the repo belong to another user ;).

That's why I said I confused user with role. The role owns the files, not the 
user. Currently, a user without wiki role capabilities can't modify the wiki 
files. Similar, a C developer role can modify /src dir but not /documentation 
or /sql, the DBA role can change /sql but not /src and similar. Role info is 
already exchanged in pull/push/sync, user info not. So in your scenary, a user 
can get the role capabilities and access them. 

The problem is that a user is admin of his own repository file and can set 
whatever s/he wants and access everything. A global dvcs role and user data can 
solve this, not allowing this user make changes in public branches or trunk 
directories of central repo (or other users repos) if s/he has no privileges to 
do so.


---   ---
Eduardo Morras <emorr...@yahoo.es>
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to