Steve O’Grady and I have a recurring debate about package management systems and which approach is best for users. Somewhere during the discussion I realized that over the last year or two, I’ve actually begun using Subversion as a package management system. Pretty much every open source web application I use on a production server is an SVN checkout.
It makes installing security updates a snap – just ssh into my server and “svn up
” for the app that needs an update.
Steve and I even agree on this one. 😉
This post is part of the thread: Version Control – an ongoing story on this site. View the thread timeline for more context on this post.
Sounds great 🙂
For added points, use SVN as a meta-package tool. Create a local svn repository, check out the root. Next create a file called “externals” that looks like this:
django http://code.djangopr[...]django/trunk
with one line per project you want to track. Next, create a bash script with something like this in it:
svn propset svn:externals . -F externals
Check both the script and your externals file in. Now, the magic. “svn up”. This will checkout all of the projects you want to track. When you want to update all of the projects, just “svn up” again.
Yep. For example, I’ve got WordPress as svn external for my alexking.org SVN repo and PHP Tag Engine as an svn external for Tasks Pro™ and Tasks™. I’ve linked to a great svn externals tutorial on phptagengine.com.
[…] - деÑкі люди пропонують викориÑтовувати ÑиÑтему контролю верÑій Ð´Ð»Ñ Ñ†Ð¸Ñ… […]
[…] the application installation process on Linux as superior to that found on Macs or PCs – though I debate the subject regularly with friends on other […]