Here’s a question for software developers out there (independent game developers and otherwise):

Is it best to keep external content in the software repository?

By external content, I refer to images, generated data files, and other binaries that are required to run the software. By software repository, I mean any system that stores the project files and provides revision control (version control). For the record, I’m using Subversion.

I think the general tendency is to use the repository only for source code, because that is its primary purpose. I felt (note the past tense) that bloating the repository with binaries overstepped the bounds of the repository’s responsibilities.

However, keeping content separate makes it difficult to produce a fully functional application, given some revision (version) of the software. That is, I can dump a version of my game software back to day one, but it will not run because I don’t have the necessary content files. It would not be practical to generate new content for an old version, even to run a small test. I could probably find a project backup containing the necessary content, but that is not a real solution.

As with most things, the best answer is also the simplest:

Place all project files in the software repository.

At least, this is the conclusion that I’ve drawn so far for this project. There are certainly alternatives, such as regularly archiving a full executable version, built from the repository and separate content. I’d really like to know what other developers have experienced on this matter.

Share and Enjoy:
  • StumbleUpon
  • Facebook
  • Twitter
  • Digg
  • del.icio.us
  • Reddit
  • Technorati
  • Google Bookmarks
  • Slashdot
  • N4G