The latest Daily Build

In what way did it break? Can you copy some output? Also I'm going to guess that you need to supply a full path if you want to use a script that has similar name as another script.

Edit: Most likely this was fixed with 12171 so try with that instead.
 
Last edited:
Yup. Fixed in r12171.

I'm guessing I should probably name my sub-files something other than "booze α.txt", "booze β.txt", etc.
 
I just downloaded 12201, and it's over twice the filesize of 12140 (10,816 kb vs. 5,294 kb). Did I miss something? Because that seems like...kind of a big jump (12140 is less than 2 weeks old). 12168 is the oldest on the builds page, and it's also over 10 MB.
 
If you really want to see how amazing SVN can be, copy/paste the following line and be amazed as it automatically installs all 33 files that comprise ChIT.

Code:
svn checkout https://svn.code.sf.net/p/mafiachit/code/

Even more amazingly it will keep it up to date automatically if you enable that option.
 
Huh. I'm surprised that takes 5 MB of code, but I guess file systems are needlessly complex. Anyway, I have a script or two ready for release soon, so I guess I'll finally give SVN a try after years of coding without it.
 
It's big because it is a fully functional svn updating system. For instance, if only 1 out of 33 files is updated, mafia knows to only download the parts of the one file that was modified to save bandwidth and time. Much more impressively, if you make changes to your working copy, and then update the script, KoLmafia will merge those with the update so that you don't have to make the same modifications to your script every time you update. For those 5 MB you get the real deal.
 
Last edited:
Oh, I know, it's just...5 MB is a really insane amount of code. Bumcheekascend is about a third of a MB. The biggest code project I've ever done is about 2.5 MB uncompiled, and it's an overelaborate physics simulator. SVN is bigger than the entire rest of Mafia put together. Is file system and version management really that complicated? I suspect there's an awful lot in SVN that was built from scratch for dubious reasons, or hardly ever gets used.

Not that I'm trying to complain about this change, or anything. Looks very useful. I just have trouble imagining what on Earth SVN's developers crammed in there.
 
I think part of it is due to the what was needed to get SVN implemented as java-classes. Mafia ins't using all of the imported code (since we only use a fraction of what SVN can do) but it was too much work (or maybe even impossible) to separate out what we needed from the rest so everything got included.
 
I guess I'll address this here.

5MB is tiny. 10MB is.. also tiny. Going from the size of 1 .mp3 to 2 .mp3s does not bother me as a user in the slightest.

From a programmer's perspective, yes, I wish I could pare down the size of pulling in the svnkit library. It's possible that I may do so in the future. If I'm not able to, I will lose exactly zero sleep over it. I consider this feature easily important enough to justify increasing the .jar by that much or more.

If you're curious, half of the size comes from precompiled libraries - one to allow java to run native code, one to allow java to interface with SQL databases, one to handle SSH, etc. Altogether I refute the claim, though, that mafia only uses a "fraction" of what svnkit provides - just svn update is probably capable of accessing 25-30% of the codebase alone, maybe more. It doesn't normally, sure, but people can do a lot of advanced things to their working copies and svn needs to be able to handle all of those things. I am happily already using the feature of it merging my local modifications into repo updates, for example. I think it is fantastic that I do not need to write any additional code to support this or any of the more esoteric svn features; they just work.
 
Not looking to start a flamewar or anything but I'm really just curious: I love the functionality this provides, though why did you choose SVN for this over other (and some more modern) version control systems?
 
though why did you choose SVN for this over other (and some more modern) version control systems?

Few reasons actually:

- We use it for mafia's source, like V said, so people are used to it
- Centralized VC makes the most sense for this distribution model (one script -> many people)
- I've used git on other projects and more-or-less despise it. That's a bit too strong of a word but it was unintuitive to me for a long time.
- "Newer" also means that the available Java libraries for it are less mature. Or too low-level, alternately. Example. This is a big deal - I was not interested in spending loads of development time figuring out how to do basic high-level tasks.

There's some other bullet points I could add, but they all condense down to: I looked at the options available, and discarded all of them except svnkit. That includes the other svn solutions as well.
 
Altogether I refute the claim, though, that mafia only uses a "fraction" of what svnkit provides - just svn update is probably capable of accessing 25-30% of the codebase alone, maybe more.
1/4 is also a fraction! So is 1/1. And 2/1.
 
Yeah...sorry if I sounded whiny or something, because that wasn't my intent. If it was suddenly 100MB, on my crappy connection that'd be pretty annoying; but an extra 5 to have an extremely useful feature isn't a problem. Heck, I already posted a script that uses it. It's just that I'd probably lose my mind if I had to write hundreds of thousands of lines to do something that intuitively seems simple (though apparently it isn't simple). Which, of course, is why you stuck the existing java code for SVN in there instead of writing or modifying it yourself; I'd have done the same thing.
 
Few reasons actually:
- Centralized VC makes the most sense for this distribution model (one script -> many people)

I understand most of your points though I'm not sure I agree with that one. Sure a central repo is preferred for updating users, but I could imagine the whole forking and sharing system of a distributed VCS could make it easier for others to contribute to a script. Oh well.

Another slightly related question: I used to have some kind of structure going on within my scripts/ path and that's kinda getting messed up since all scripts that use the svn stuff just put themselves in the script root. Is there any way I can specify a prefix or something to check them out (while not touching any other things they do in relay/ or data/ for instance)?
 
There are plans to introduce a way to handle the scripts-menu much like the bookmarks in say Firefox, but that is a very mature feature and will come when the rest is finished. See further the SVN-discusson thread.
 
Not looking to start a flamewar or anything but I'm really just curious: I love the functionality this provides, though why did you choose SVN for this over other (and some more modern) version control systems?

I meant to reply several days ago but couldn't find this post.

About a year ago there was a discussion about version control for scripts. At that time I suggested SVN because it was a tool I had used as a developer, a tool I had administered as a configuration manager and SVNKit existed which meant that integrating SVN into mafia might be easier than other approaches such as wrapping a command line tool that accessed something else.

So, given that various people have different perspectives on history and their own place in it, I focused on SVN because it was the tool I knew best. That said, I did not implement anything at the time and roippi continued with SVN for reasons already stated.

So blame SVN on me ;-)
 
I was reading this thread because I rarely if ever had read anything in the Unofficial Builds forum and thought I would see what's going on. Has anyone's mind changed about SVN vs Git 5 years on?
 
Back
Top