As an FYI, I'm going to be making some pretty radical changes to how mafia resolves SVN-installed script calls. But I'll do my best to ease the migration. It'll go something like this:
0) Include svn/ directory in namespace searches,
only if there is no match in the standard namespace (i.e. scripts/, relay/ and friends). This is very trivial to code, already have this done locally.
1) Refactor scripts menu to use bookmarks (i.e. internal symbolic links) instead of relying on physical subfolder usage. This will take me a while. (Sigh.)
2) Stop pushing local updates into /scripts and /relay. If a copy of a script exists in both places, preferentially use the copy in svn/. No warnings or errors yet.
2.5) Start emitting warnings that duplicate scripts in the "normal" script locations (scripts/, relay/) that are also installed in svn/ will soon be errors. i.e.
Code:
Warning: script svn/bumdoodad/scripts/bumdoodad.ash conflicts with $ROOT/scripts/bumdoodad.ash. You should delete $ROOT/scripts/bumdoodad.ash.
3) Warnings become errors. Scripts won't run until you delete one copy (i.e. the non-svn copy).
The whole goal here is to wean mafia off the idea that the scripts/ folder is where scripts
have to live - it's just massively simpler if we can run scripts directly from the svn/ folder. For one, "svn sync" will no longer be necessary, as the svn copy is the only copy. It also makes the workflow for authors who publish directly out of their svn/ folder far simpler, and just generally reduces the amount of "surprising" behavior mafia's SVN implementation performs.