Archive for version control
Hudson, Sonar & Ruby: Continuous integration of a Rails app
April 15th, 2009 • 2 comments agile, programming, subversion, version control
Tags: linkedin
I’m currently playing (well battling at times – VMWare can be an arse at times – or maybe i’ve been away for too long) with plugging a rails app into Hudson and Sonar.
My intention is to have the Rails app on a separate server from the Hudson server and have the Rails app return Hudson-friendly XML from RSpec and Cucumber tests. When i get this to work, it’ll enable me to roll this out at work, with a central Hudson server (perhaps) that interacts with multiple app servers of various technologies and, along with the wonders of Sonar, gives a view into code test coverage, pass rate and complexity. I feel that i might struggle convincing Sonar to play with Ruby, but we’ll see.
Why Hudson?
To be completely honest, at work, i didn’t make that decision and am yet to chase down exactly why it was chosen over CruiseControl, but I completely trust those that made the decision on their project. I’m a big believer in standardising and am as such following suit and trying out Hudson.
SVN: Handling merging of multiple branches up and down from trunk
December 17th, 2008 • 2 comments software development, subversion, svn, version control
Tags: linkedin
I’ve been away from code and SVN branch merges a little recently so I forgot the exact process of handling multiple branches merging up and down from trunk.
After a little thought and partially effective googling, i found that the following is an efficient process:
Introduction – What I had
- trunk
- branch_a created at SVN revision 2111
- branch_b created at SVN revision 2113
Step 1 – Preparation – Checkout local copies of trunk, branch_a, and branch_b
- cd ~/
- svn co http://svn_repository/trunk ./trunk
- svn co http://svn_repository/branches/branch_a ./branch_a
- svn co http://svn_repository/branches/branch_b ./branch_b
- I ensured that all changes had been committed to trunk and both branches
Step 2 – Merging branch_a back to trunk after a successful rollout
- cd ~/trunk
- svn merge http://svn_repository/trunk http://svn_repository/branches/branch_a
- svn commit -m “merged branch_a into trunk”
Step 3 – Merging the newly updated trunk into branch_b
- cd ~/branch_b
- svn merge http://svn_repository/trunk -r2113:HEAD .
- svn commit -m “merged up from trunk, applying changes between 2113:HEAD that included changes made on branch_a”
Step 4 – When i’m ready, i’ll merge branch_b back into trunk, following Step 2 above
That’s it!