Script Collisions

fronobulax

Developer
Staff member
I am scratching my own itch by implementing a checkrepo command. It looks at the SVN directory and identifies local repos that have files that will overwrite each other when an SVN operation copies files to relay, scripts, etc. Comparison is forced to lower case so there is a slight chance of a false positive on an OS that is case sensitive. The copy code identifies a conflict and asks the user before overwriting but often users forget and it is quite possibly to not be sure which script was updated most recently and this wrote the file.

As a test, I installed everything in svnrepo.json. I found the following duplicates


Code:
***
 bale-relay-topmenu\relay\topmenu.ash
 ckbiconmenu\relay\topmenu.ash
***
***
 eodascensionchecklist\data\EoDCommonListDefault.txt
 eodscascension-0\data\EoDCommonListDefault.txt
***
***
 batman-re\relay\fambattle.ash
 Ezandora-Helix-Fossil-branches-Release\relay\fambattle.ash
***
***
 autobhh\scripts\bounty.ash
 guyymafia-buttonfrenzy\relay\bounty.ash
***
***
 kolmafiascripts-mafiarecovery\relay\relay_Universal_Recovery.ash
 mafiarecovery\relay\relay_Universal_Recovery.ash
***
***
 kolmafiascripts-mafiarecovery\scripts\Universal_recovery.ash
 mafiarecovery\scripts\Universal_recovery.ash
***
***
 batman-re\relay\datatables.min.js
 reference-plus\relay\datatables.min.js
***
***
 guyymafia-buttonfrenzy\relay\shop.ash
 relaywtf-shopwtf\relay\shop.ash
***
***
 guyymafia-buttonfrenzy\relay\store.ash
 relaywtf-shopwtf\relay\store.ash
***
***
 relaywtf-inventorywtf\relay\inventory.ash
 rlbond86-mafia-scripts-enhanced_inventory_spoilers-trunk\relay\inventory.ash
***
***
 relaywtf-inventorywtf\relay\storage.ash
 rlbond86-mafia-scripts-enhanced_inventory_spoilers-trunk\relay\storage.ash
***
***
 relaywtf-vipwtf\relay\clan_viplounge.ash
 rlbond86-mafia-scripts-fax_tell-trunk\relay\clan_viplounge.ash
***
***
 Ezandora-Choice-Override-branches-Release\relay\choice.ash
 rlbond86-mafia-scripts-modular_choice_override-trunk\relay\choice.ash
***

I also found two scripts that had migrated from SVN to GitHub since their svnrepo entry was last updated.

Everything is derived from the SVN root. If "\" is a delimiter then the first field is KoLmafia's directory for a local repository. The second field is where KoLmafia will place the file and the last field is the file name. Note that a falls positive will be generated if the name is the same but the mafia directory is not.

For your amusement while I get the code to the point that I make a PR from it.
 

zarqon

Well-known member
For my part, I have just resolved the datatables collision by including it with CLI Links rather than each script that uses it.

That leads me to wonder: when a project removes a file and the user updates that project, is the file deleted even if it is also used by another project?
 

fronobulax

Developer
Staff member
For my part, I have just resolved the datatables collision by including it with CLI Links rather than each script that uses it.

That leads me to wonder: when a project removes a file and the user updates that project, is the file deleted even if it is also used by another project?

Dunno, but I expect things don't work as hoped.

I did get the updates today and needed to manually copy something (clilinks.ash ?) to relay before things worked. That may be related to the need for the common workaround to many issues of uninstalling and reinstalling rather than updating.
 

Magus_Prime

Well-known member
That's odd. When I ran svn update today I got a prompt to permit the addition of a new file "clilinks.ash" and it, and other clilinks.* files, appeared in my /relay directory without any intervention on my part.


clinks.png
 

fronobulax

Developer
Staff member
OK. I could have pressed No when I thought I pressed Yes. It did happen while I was waiting for the first cup of coffee to brew.
 

fronobulax

Developer
Staff member
Installed everything. Collisions below. It should be noted that all collisions were noted at time of installation of the second script so the checkrepo command is more about refreshing memory than finding something new.

I'm getting some false positives on missing dependencies. Checking that out.

Code:
Found 676 repo files.
***
C:\Temp\svn\bale-relay-topmenu\relay\topmenu.ash
C:\Temp\svn\ckbiconmenu\relay\topmenu.ash
***
***
C:\Temp\svn\eodascensionchecklist\data\EoDCommonListDefault.txt
C:\Temp\svn\eodscascension-0\data\EoDCommonListDefault.txt
***
***
C:\Temp\svn\batman-re\relay\fambattle.ash
C:\Temp\svn\Ezandora-Helix-Fossil-branches-Release\relay\fambattle.ash
***
***
C:\Temp\svn\autobhh\scripts\bounty.ash
C:\Temp\svn\guyymafia-buttonfrenzy\relay\bounty.ash
***
***
C:\Temp\svn\kolmafiascripts-mafiarecovery\relay\relay_Universal_Recovery.ash
C:\Temp\svn\mafiarecovery\relay\relay_Universal_Recovery.ash
***
***
C:\Temp\svn\kolmafiascripts-mafiarecovery\scripts\Universal_recovery.ash
C:\Temp\svn\mafiarecovery\scripts\Universal_recovery.ash
***
***
C:\Temp\svn\guyymafia-buttonfrenzy\relay\shop.ash
C:\Temp\svn\relaywtf-shopwtf\relay\shop.ash
***
***
C:\Temp\svn\guyymafia-buttonfrenzy\relay\store.ash
C:\Temp\svn\relaywtf-shopwtf\relay\store.ash
***
***
C:\Temp\svn\relaywtf-inventorywtf\relay\inventory.ash
C:\Temp\svn\rlbond86-mafia-scripts-enhanced_inventory_spoilers-trunk\relay\inventory.ash
***
***
C:\Temp\svn\relaywtf-inventorywtf\relay\storage.ash
C:\Temp\svn\rlbond86-mafia-scripts-enhanced_inventory_spoilers-trunk\relay\storage.ash
***
***
C:\Temp\svn\relaywtf-vipwtf\relay\clan_viplounge.ash
C:\Temp\svn\rlbond86-mafia-scripts-fax_tell-trunk\relay\clan_viplounge.ash
***
***
C:\Temp\svn\Ezandora-Choice-Override-branches-Release\relay\choice.ash
C:\Temp\svn\rlbond86-mafia-scripts-modular_choice_override-trunk\relay\choice.ash
***
Local SVN repos scanned for possible duplicates.

As I review this I think it is time to remove the original, hosted by Bale, version of Universal Recovery.
 
Top