On 05-Mar-2007, at 14:52, Sonic Baker wrote:

> (d) Other.

project-dir
        trunk
                Rakefile
                config/
                        Doxyfile
                        Doxyfile_cake
                        lighttpd.conf
                        deploy.rb
                docs/
                media/
                root/
                        .htaccess
                        app/
                        cake/
                        docs/
                        index.php
                        vendors/
        releases/
                2006-03-22_1.0.0
                2006-03-25_1.0.1
                2006-06-12_1.0.2
                2007-01-05_1.1.0
                ...
        branches/


Basically, I try to keep everything related to the project in one spot in the repository.

The Rakefile has utility tasks for things like dumping the Db to a file, starting the lighttpd server, wrapping a filter around svk's output to remove things like Cake's cachefiles, launching TextMate and pointing it at the root/app directory, running doxygen, opening doxy's output in Safari, and the like. Automating the mundane stuff prevents me from mistyping commands and greatly reduces the keystrokes required.

The docs/ and media/ directories hod -- unsurprisingly -- project documentation and any media files (i.e. PSDs of the layout elements, TeX source, etc.)

When I want to deploy out the Apache-based servers, I just have to upload the contents of root/. Depending on the server, I can do that via capistrano, svn export, or plain old FTP.

Once the project hits a milestone, I just svk cp trunk/ into an appropriately named subdirectory in releases. And the same standard methodology for branching.

Integrating new releases of Cake is done by hand. Usually, it just requires deleting cake/, docs/, vendors/, and index.php from root/ and dropping in the new versions thereof. I don't really need to retain the modification history for the cake files, since I have access to it in my SVK mirror of the cake/branches/1.2.x.x directory.

Ideally, I would keep the sources for lighttpd, php, PCRE, etc in a tools/ directory inside trunk/, and then run the project entirely out of the trunk directory. But that'd take some time to setup and -- being a small shop -- there wouldn't be much immediate benefit.


Hopefully that's not too boring a tour.
s.

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to