Alive
News Team Current issue History Online Support Download Forum @Pouet

01 - 02 - SE - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14

Alive 14
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
Alive 14