I am not sure I agree with your assessment of svn sync but am not motivated enough to run experiments or the debugger.
I am naively going on the basis of the comment and also am not motivated enough to run experiments. It's interesting but it doesn't help here.
Perhaps the context of my comments and confusion remains unclear.
I still don't understand the context. Sorry.
Since there are way too many things going on I'm going to put a stake in the ground and see whether I get burned on it.
I don't think anyone wants to burn anyone. There is and should be institutional resistance to change when the clear reason for it need more discussion. I think the stake is a bit premature, and I'll be unhappy if we can't discuss this further, but I have yet to be unhappy enough about anything we discuss to want to turn you into St. Frono d'Arc.
KoLmafia is NOT going to be changed to delete files in /scripts or /relay regardless of the state of a local svn directory.
Is anyone proposing this? I think we're saying delete files *specifically because* they have been deleted in the local SVN directory. That they are added to a different local directory is, in our model, not handled in the equivalent of a transaction. Our SVN action is "update to HEAD", and you get, for instance, r38 in your $svn directory. But when it installs via svn update, it doesn't follow the same model and you don't have r38 in your scripts or relay directories.
This would just be litter in the filesystem (e.g. rename /scripts/foo to /scripts/bar) if we didn't use an aggressive find-and-run-by-name system. If you move a directory and it acts as is, you have not actually moved anything. If we remove the rebase, then we have to have a way to actually follow the Event Stack actions and do the delete+add
As a former Configuration Manager myself, this is chaos. You don't know the state, and you can't impose the state of your scripts on the running directory. It kinda works as-is, with the flaws noted, but only by giving up any possibility of knowing what's going on or why it's broken. I am not suggesting it was the wrong choice at the time, but I definitely think it has some painful ramifications now and is worth making better.
And by better I mean "it puts the script files where the version control system tells it to", but I'd also like the "we run the files in-place" and I'm open to other solutions as well.
Repository managers need to understand that moving and renaming in the repository may require deletes by KoLmafia in which case the first point applies.
What would it look like if I wanted to change scripts/myscript/foo to scripts/myscript/bar? Would I tell a user to delete my script and re-install? Would I need to abandon the one with the wrong directory structure and create a new project? Do I rename the contents and every reference to them inside my script? There's no way in KoLmafia to update a script and change the structure.
The problem where two script authors use the same name for a file that gets placed in /relay or /scripts and the resulting collision breaks something needs to be addressed. I won't repeat my suggestions because I can't tell whether the response is from people who think it is a suggestion to solve a different problem or people who just have different ideas for this one.
Should we split the thread? The reasons both issues are here is that they might have one solution. I think that having introduced javascript we have made it more likely, as packages that are being used might generate index.html as a part of each project. Or we might use versioned libraries in JS that would have problems if the configuration file wasn't updated, etc. The last project in would be the only "winner", placing (for instance) index.html in the directory structure of the very first installed index.html.