Community Blog

Developers looking to stay plugged into the bleeding edge of Movable Type without having to depend upon nightly builds may like the following tip which shows how one can always access the following builds reliably and predictably without having to worry about branches, tags or anything else about how the source code is organized:

  • The last official release that one can download from our web site
  • The last stable release, which includes minimally tested milestone beta builds
  • The most recent source code in active development

Pointers to each of these are maintained for your convenience by the development team. Simply execute the following command and you will check out three copies of Movable Type corresponding to each of the above states of the source code (the source code will be placed within a directory called mtos-latest):

svn co http://code.sixapart.com/svn/movabletype/latest mtos-latest

When that is complete you can navigate to the dev directory found within the mtos-latest directory that was just created for you and execute svn up to update to the most recent code in development.

Executing the following command will reveal that this is made possible through a set of three svn:externals:

svn propget svn:externals http://code.sixapart.com/svn/movabletype/latest

In layman's terms, these externals act as pointers to the location within the source tree where you can find the code you are looking for. This is the very mechanism used by our own build scripts to create our nightly builds, something you could do for yourself if you wanted by using the following command:

svn export `svn propget svn:externals http://code.sixapart.com/svn/movabletype/latest \
    | grep ^dev | perl -pe 's/^\w+ //'` nightly > /dev/null

Happy holidays and happy hacking.

1 Comment

Sweet, thanks for this tip!

Leave a comment

Have a question? Please use the MT Forums. Notes submitted on documentation should pertain to tips & hints regarding documentation. Your note may be removed once its contents have been integrated into the body of the page.