See https://kolmafia.us/threads/svn-update-does-not-move-files-in-local-copy.26043/page-4#post-162486 and https://kolmafia.us/threads/20743-w...-directory-and-file-name-not-just-file.26094/ for background and related. discussion.
Prior to r20743 it was assumed that any file in the script name space had a unique name. This meant that a user could install a script, move that script to a different location and the script would still be updated via SVN. One motivation for moving scripts was because the script menus had no organization other than the underlying file system so moving scripts to subdirectories reduced visual clutter while still allowing the script to be selected and run.
r20743 changed this. SVN would only install or update a file if it was in the directory the author expected. This allowed JavaScript writers to use common names for files without collisions with other scripts.
Since I feel like I broke something while helping someone I am not really happy with the results.
Trying to have it both ways, by adding a preference, would mean that some scripts would not install or work based upon the preference. Trying to detect the situation and prompt the user will not work for users who are not running the GUI (unless someone smarter than I jumps in). Reverting will break scripts currently deployed or under development which, at the very least, would require that KoLmafia actually enforce the unique name convention and detect violations. Keeping it breaks updates for some users and should lead to some discussion about how to declutter menus (and perhaps the file system).
I am certainly capable of coming up with a proposed rework of the relationship between SVN, runnable scripts and the file system but that could be more disruptive than helpful.
Comments? Suggestions? Guidance?
Prior to r20743 it was assumed that any file in the script name space had a unique name. This meant that a user could install a script, move that script to a different location and the script would still be updated via SVN. One motivation for moving scripts was because the script menus had no organization other than the underlying file system so moving scripts to subdirectories reduced visual clutter while still allowing the script to be selected and run.
r20743 changed this. SVN would only install or update a file if it was in the directory the author expected. This allowed JavaScript writers to use common names for files without collisions with other scripts.
Since I feel like I broke something while helping someone I am not really happy with the results.
Trying to have it both ways, by adding a preference, would mean that some scripts would not install or work based upon the preference. Trying to detect the situation and prompt the user will not work for users who are not running the GUI (unless someone smarter than I jumps in). Reverting will break scripts currently deployed or under development which, at the very least, would require that KoLmafia actually enforce the unique name convention and detect violations. Keeping it breaks updates for some users and should lead to some discussion about how to declutter menus (and perhaps the file system).
I am certainly capable of coming up with a proposed rework of the relationship between SVN, runnable scripts and the file system but that could be more disruptive than helpful.
Comments? Suggestions? Guidance?