Version Control
with
Devpac/Gen
Projects
A few years ago we (DHS) started to talk about using CVS for
demo coding, to keep a good order easily. Admittedly I've been a
bit against it because it would not allow TOS for the coding,
the CVS tools are MiNT-only. Another reason is that I'm a
control freak, I wasn't very comfortable with blindly trust all
years of development with an automated system.
But as times went by, we more or less obsoleted TOS from our
development chain in favour for MiNT, and we did some tests back
around when we worked on the Don't Break the Oath demo. It
turned out that CVS wasn't really up for the task; it stripped
our Devpac sources from having CRLF line endings into only
having LF (Unix style). That would be all fine, if Devpacs
assembler, Gen.ttp, could handle it. Which it can't. Gen goes
pretty mad with plain LF endings. A solution here could for
example have been a script that converts all files to CRLF. But
we decided it was just a hurdle.
A few years passed by, we used the normal FTP stuff to sync
sources, it worked, our uploaded zip-files always build well.
Still it is tedious to sync several times a day that way. In
december 2006, KeithS make a posting on our BBS about him having
ported the Subversion version control system to Atari/MiNT.
Subversion is sort of a next generation CVS with enhanced
features. In february 2007, we decide to give Subversion a test
on the Atari.
The installation is manual, Keith has not made RPM-files, which
might put some off from the start. But really, it's not much of
a problem anyway, just copy the files in place. To begin we do a
quick test to checkout a C project from the repositry. It works
as intended without hassles. It all starts to look very
promising.
Next up is to test a Devpac/Gen project, we upload our "Acidic
tears" 4k as a test. The checkout works fine, as the last time.
But here the fun ends, Gen refuses to work from the Ext2 file-
system! Damn! Ok, the next idea is to use Subversion on TOS-FS
to avoid the Gen problems that it has with Ext2. But here we
collide with more problems. It appears that Subversion creates
temporary files which doesn't comform with the old 8+3 limit of
TOS-FS. Damn*2!
We were so close, and it all boils down to a poorly written Gen.
But now, the old time MiNT-user might start to have ideas. Ext2
in MiNT does not have support for work arounds to old programs.
But a certain other filesystem does; MinixFS. Alright, MinixFS
isn't as powerful as Ext2, but it greatly shines over TOS-FS,
and it does support those filenames that Subversion creates, and
importantly, Gen does work against MinixFS.
So another test, now with MinixFS, will it work for both
Subversion and Gen ?
YES!
The checkout works as intended, and Gen happily assembles the
project. Damned fast too for that matter, 0.1s and there's a
generated .prg to run. The .prg is set with +X flags so it is
ready to run without any chmod.
So, what we have now is a working version control for Atari
Devpac/Gen projects. Hooray!
So what does it take in form of software and hardware?
1) FreeMiNT with networking, a full install of EasyMiNT is really
recomended. It's possible you can hack up the needed files and
do another KrapMiNT but I wouldn't recomend that.
2) The Subversion binaries which you can find at KeithS's download
directory:
http://www.radix.net/~kws/mint/
Download the following files:
apr-0.9.12-mint.tar.gz
neon-0.26.2-mint.tar.gz
apr-util-0.9.12-mint.tar.gz
subversion-1.4.2-mint.tar.gz
3) FPU (for using SSH/SSL Subversion repositries).
4) The faster CPU/CPU the better, SSH take a bit of time to initiate
connections.
5) A bit of memory, SSH is quite hungry on that.
6) A partion with a Minix filesystem.
In short, this equals pretty much a normal CT60 Falcon with
EasyMiNT installed. Plus subversion itself of course. We intend
to start using it, and hopefully it will ease up coding new
demos a bit.
Thanks to KeithS for the Subversion porting efforts.
Evil/DHS (ae@dhs.nu) for Alive
|