SVN

From The DarkMod Wiki
Jump to navigationJump to search

So what is this SVN thingy then?

SVN stands for SubVersioN. It's a framework originally developed for distributed coding projects, often with multiple programmers working on the code at the same time.

The Dark Mod is a project distributed over the whole world, that's where SVN comes in handy. It allows all Team Members to work on the Mod at the same time without coming in the way of each other.

DarkMod SVN Infrastructure

The graph below shows The Dark Mod's SVN infrastructure. Basically, we have one central SVN server run by sparhawk. It is accessible for all Team Members, Contributors and Beta Mappers alike, but not everybody has write access rights.

Everybody runs his or her own copy of the mod repository on his local hard drive and the SVN Client Software (recommendedly TortoiseSVN) provides some convenient functions to keep the copies in sync with each other.

Looking at the graph, you'll notice several repositories, each serving a specific purpose:

  • darkmod: This is the mod itself. It contains all files needed to run the Mod on a regular Doom 3 installation. This includes the compiled code, the textures, the entity and material definitions, skins, models and whatnot.
  • darkmod_src: The coder's realm. This is where our C++ sources are kept. From the files in this repository, the code (the gamex86.dll) gets compiled and wrapped up in a PK4 file and is uploaded to the darkmod repository in regular intervals.
  • darkmod_hires: This is meant to be a backup repository for losslessly compressed texture files. As the main mod diffuse textures are stored in DDS format (a lossy compression format), we want to keep a backup of these files in TGA file format (see also How to add Textures to The Dark Mod).
  • texture_src: The place for texture source/working files, like Photoshop .psd files, Gimp files - everything including layers.
  • model_src: The repository for Blender, Lightwave, MotionBuilder, Maya, 3DSMax source files, everything needed to re-export models and animations from scratch.
  • betamapper: This is a separate repository for our beta mappers and contributors. They are encouraged to upload their files (maps, textures, models, etc.) to this repository (each mapper can have his/her own folder). This way they can take advantage of SVN's versioning system and also have a nice backup of their work.

You lost me there, I need an example!

All right then, here you go: SVN Tutorial

SVN Glossary

The SVN terminology can be confusing at times, this is a (probably incomplete) list of terms explained: SVN Glossary

SVN Troubleshooting