Today, I had a developer spend nearly half an hour telling me that the QA server magically broke itself. A server that has worked for well over a year, which he himself has used repeatedly, just up and broke itself.

Just a note: you committed it, you (most likely) have to fix it. Most of the code I get pushed to QA is usually not ready, and has some serious issues. In this case, its right back at ya.

I’ve started seeing this more and more often in our branches, and it’s starting to cause more and more problems.

Before committing, update and make sure your code doesn’t over write something important. Merge it with SVN or diff it with a tool such as WinMerge. Or just update before you write code and pray noone else decides to commit before you. Does anyone sometimes miss the days of CVS when once a file was checked out, noone else could touch it.

So please, svn update before you start writing your code(we won’t even discuss code quality/reviews in this post!)

First, let me start this off with a branching strategy proposal. This is what we have at work, and I’m happy to hear comments otherwise, and as to why this sucks. But understand that it generally works for us.

We have 1 product. For the sake of this example, lets call it “PRODUCT”. We run 2 concurrent development cycles. A weekly maintenance cycle, where we fix non-pressing bugs, and a bi-weekly sprint. There are 2 branches created from trunk called “Sprint” and “Maintenance”(shocking name choice I know!). Also for urgent/blocker issues, fixes are made directly into trunk and pushed to production after testing.

9 times out of 10 when I try to reintegrate the sprint or maintenance back into the trunk I get LARGE amounts of conflicts. On files that were never even worked on in one of the branches.

So I will issue command: svn merge –reintegrate http://repo/Sprint
and while some files will update, I will have conflicts on files that are EXACTLY identical(via WinMerge). I don’t know what causes these conflicts.

Why does merging have to be so complicated? I just want a solution that will work for what we need.

So I’m running my Jenkins CI environment on a Amazon AWS EC2 M1.small, and since I went with the default install, the /var/lib/jenkins/jobs folder was rapidly filling up. I was down to 2% free disk space…woops!

So after some research, I decided the best solution was to symlink the jobs folder over to /mnt and move the jobs folder to /mnt

Commands follow:
/etc/init.d/jenkins shutdown
mv /var/lib/jenkins/jobs /mnt/jobs
rmdir /var/lib/jenkins/jobs (might not be needed)
ln -s /mnt/jobs/ /var/lib/jenkins/jobs
/etc/init.d/jenkins restart

This solved my problem, and fixed me up rickytick!

© 2012 Randoms from Blackberry Suffusion theme by Sayontan Sinha