I think I have dependencies sorted:
(where below I declare project1 and chit as dependencies in project-beta)
Code:
> svn checkout https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/
Starting Checkout...
Validating repo...
Repo validated.
C:\Users\Ben\workspace\kolmafia\svn\mafiasvntest-myvalidproject-beta
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/dependencies.txt
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/scripts
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta/scripts/valid2.txt
https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject-beta
At revision 14
Successfully checked out working copy.
Pushing local updates...
valid2.txt => C:\Users\Ben\workspace\kolmafia\scripts\valid2.txt
Done.
Installing 2 new dependencies.
Starting Checkout...
Validating repo...
Repo validated.
C:\Users\Ben\workspace\kolmafia\svn\mafiasvntest-myvalidproject1
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject1/scripts
A https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject1/scripts/valid2.txt
U https://svn.code.sf.net/p/mafiasvntest/code/myvalidproject1
At revision 14
Successfully checked out working copy.
Pushing local updates...
valid2.txt => C:\Users\Ben\workspace\kolmafia\scripts\valid2.txt
Done.
Starting Checkout...
Validating repo...
Repo validated.
C:\Users\Ben\workspace\kolmafia\svn\mafiachit
A svn://svn.code.sf.net/p/mafiachit/code/images
A svn://svn.code.sf.net/p/mafiachit/code/images/chit
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/medium_orange.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/select_mood.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/stats.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/refresh.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/mcdoff.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/mcdon.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/collapse.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/helpers.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/busy.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/questsnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/medium_blue.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/select_outfit.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/trail.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/elements.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodsave.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/effects.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/Elements2.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/upred.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/modifiers.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/helpersnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/update.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/mcdnone.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodplay.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/quests.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/up.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/moodburn.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/organs.png
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/medium_red.gif
AU svn://svn.code.sf.net/p/mafiachit/code/images/chit/tracker.png
A svn://svn.code.sf.net/p/mafiachit/code/data
A svn://svn.code.sf.net/p/mafiachit/code/data/chit_ReadMe.Txt
A svn://svn.code.sf.net/p/mafiachit/code/data/chit_effects.txt
A svn://svn.code.sf.net/p/mafiachit/code/relay
A svn://svn.code.sf.net/p/mafiachit/code/relay/chit.js
A svn://svn.code.sf.net/p/mafiachit/code/relay/charpane.ash
A svn://svn.code.sf.net/p/mafiachit/code/relay/chit.css
svn://svn.code.sf.net/p/mafiachit/code
At revision 18
Successfully checked out working copy.
Pushing local updates...
chit.css => C:\Users\Ben\workspace\kolmafia\relay\chit.css
charpane.ash => C:\Users\Ben\workspace\kolmafia\relay\charpane.ash
chit.js => C:\Users\Ben\workspace\kolmafia\relay\chit.js
chit_effects.txt => C:\Users\Ben\workspace\kolmafia\data\chit_effects.txt
chit_ReadMe.Txt => C:\Users\Ben\workspace\kolmafia\data\chit_ReadMe.Txt
tracker.png => C:\Users\Ben\workspace\kolmafia\images\chit\tracker.png
medium_red.gif => C:\Users\Ben\workspace\kolmafia\images\chit\medium_red.gif
organs.png => C:\Users\Ben\workspace\kolmafia\images\chit\organs.png
moodburn.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodburn.png
up.png => C:\Users\Ben\workspace\kolmafia\images\chit\up.png
quests.png => C:\Users\Ben\workspace\kolmafia\images\chit\quests.png
moodplay.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodplay.png
mcdnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\mcdnone.png
update.png => C:\Users\Ben\workspace\kolmafia\images\chit\update.png
helpersnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\helpersnone.png
modifiers.png => C:\Users\Ben\workspace\kolmafia\images\chit\modifiers.png
upred.png => C:\Users\Ben\workspace\kolmafia\images\chit\upred.png
Elements2.gif => C:\Users\Ben\workspace\kolmafia\images\chit\Elements2.gif
effects.png => C:\Users\Ben\workspace\kolmafia\images\chit\effects.png
moodnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodnone.png
moodsave.png => C:\Users\Ben\workspace\kolmafia\images\chit\moodsave.png
elements.png => C:\Users\Ben\workspace\kolmafia\images\chit\elements.png
trail.png => C:\Users\Ben\workspace\kolmafia\images\chit\trail.png
select_outfit.png => C:\Users\Ben\workspace\kolmafia\images\chit\select_outfit.png
medium_blue.gif => C:\Users\Ben\workspace\kolmafia\images\chit\medium_blue.gif
questsnone.png => C:\Users\Ben\workspace\kolmafia\images\chit\questsnone.png
busy.gif => C:\Users\Ben\workspace\kolmafia\images\chit\busy.gif
helpers.png => C:\Users\Ben\workspace\kolmafia\images\chit\helpers.png
collapse.png => C:\Users\Ben\workspace\kolmafia\images\chit\collapse.png
mcdon.png => C:\Users\Ben\workspace\kolmafia\images\chit\mcdon.png
mcdoff.png => C:\Users\Ben\workspace\kolmafia\images\chit\mcdoff.png
refresh.png => C:\Users\Ben\workspace\kolmafia\images\chit\refresh.png
stats.png => C:\Users\Ben\workspace\kolmafia\images\chit\stats.png
select_mood.png => C:\Users\Ben\workspace\kolmafia\images\chit\select_mood.png
medium_orange.gif => C:\Users\Ben\workspace\kolmafia\images\chit\medium_orange.gif
Done.
Requests complete.
I want to install some more security features - I think there should be a max depth on recursion for dependencies installing dependencies, for example, and I want to idiot-proof the file reading of dependencies.txt. One of the biggest "gotchas" was not clashing between dependencies that specify one protocol (like svn://) and working copies that specify a different one. I think I have that sorted though.
I think the hardest part was figuring out whether to spell it "dependencies" or "dependancies". Apparently both are valid? wtf, English, get it together.