SVN Developer Branch Flow

Ever wanted to use a branch workflow with SVN, but had trouble getting it to work or finding out information on how to manage branches? Yes I have, and I spent the best part of two days working it out only to realise it was not as bad as I thought. I was just about to ditch the idea when I finally worked it out by re-reading about SVN merging.

The Strategy

The idea is to have developer branches, so each developer can have their own working copy and manage it themselves. Once they have completed each ticket of work and are ready for go back onto the mainline (trunk), they merge the batch of revisions down to trunk ready for release.

The Issue

Note: I am not branching trunk as a whole, but branching a sub folder within trunk

All seemed to be going well-I was making changes to my branch and committing as and when I needed to. I then finished my first ticket and merged the code down to trunk. Another ticket was finished so I merged the code down to trunk. A couple of days later another developer had finished their work and merged to trunk. Now I need to pull their changes to my branch to keep my branch in sync, but this is where it all started to go wrong. Upon doing a sync merge to bring all changes on trunk, my branch did not know about the previous merges that I had made from my branch to trunk. It was trying to bring the merges I had made from my branch to trunk, and throwing errors about conflicts.

The error was “Reintegrate can only be used if revisions X through Z were previously merged from {repo} to reintegrate source, but this is not the case”

The strategy of developer branches seemed like a simple idea, but seemed to be causing many issues. My research lead me to find out in SVN 1.8 server, merge had been updated to be smarter about moving changes between trunk and branches. We got a 1.8 server running and copied over the repository to check if this was the case-still no difference. I eventually ran back into my issue above.

The Solution

As these branches are long running branches, and merges happen but then they are kept running, the branches are not being reintegrated back to trunk. So you need to keep them alive by keeping the branch in the loop of what has been merged to trunk. One might think if you merge from a branch to trunk, the branch will know what you merge to trunk. But that’s not the case with SVN. When you merge to trunk, you are only applying the changes from the merge to the local copy of trunk. These changes are not merged until you commit all these changes to trunk. By committing the merged changes to trunk you create a new revision number, and this new revision number is never passed back to the branch. In this instance you would normally be terminating the branch as your feature is complete, but as we want long running branches we have to keep the branch alive.

In order to do what we need and keep the branches alive, we need to follow the following flow (diagram to help follow along)


SVN Long running branch flow

  • Rev. 10 We create a branch of trunk (branch-a) , this creates revision 11
  •  Another branch is created from trunk (branch-b), this creates revision 12
  • Marty is developing on branch-a and makes a change this makes revision 13
  • Meanwhile Jen is developing on branch-b and has done a fix and commits making revision 14
  • Jen is happy for revision 14 to pushed back to trunk, she merges here revision 14 to trunk, all goes OK, so she commits the merged changes creating revision 15 on trunk
  • As the merge created revision 15, branch-b does not know this and in future sync merges on branch-b it will try to bring revision 15 back to the branch, and cause conflicts. So, Jen needs to merge revision 15 to branch-b, but not like a normal merge, she only needs to do a record only (–record-only) merge. This will tell branch-b not to try and merge revision 15 to the branch-b in the future
  • Marty then makes a fix and creates revision 17
  • Marty realises Jen made a fix he needs on his branch, so Marty does a sync merge onto branch-a and commits the merge code as normal
  • Marty has fixed the issue he was working on in revision 13 & 17 and it’s time to merge into trunk, Marty merges his code to trunk, and merges the applied changes to trunk this creates revision 19
  • Now Marty needs to merge revision 19 as a record only merge to branch-a to avoid SVN try to merge it in sync merges later on.


–record-only is the command line flag if you are using the command line to do your merges, if you are using a GUI there should be an option for it, in SmartSVN it’s in the advanced tab, see below:


--record-only merge in Smart SVN


Nexus Minimal Fountain Pen

nexus pen stood up

Back last August I came across a kickstarter project for a fountain pen. After landing on the page I knew I needed to back the project, the minimal nature of the pen appealed to me. Due to me finding the project late on, I missed out on the early backers deals, but even paying the full price of £26 I felt that was a reasonable price to pay for what should be a beautiful pen.

With this being my first kickstarter backed project I was a bit weary of the whole process, I’ve read about horror stories and seen lots on Twitter about bad experiences. In total I had committed £29 to the project, £26 for the £3 for an convertor, with an estimated shipping date of November, just over 2 months after the project was successful. I thought that was a bit ambitious for such an item, but I kept my hopes up. As you can probably predict I never received my pen in November, the pen finally made it into my hands in February, 6 months after the project was successfully funded. Even tho the project was a little late not too bad in my eyes, the communication from the company behind the project was amazing, they kept sending regular updates, which kept my faith in actually getting my pen.

nexus pen lay on side

Having received my pen just over two weeks ago, I’ve made it my daily pen since then. From first opening the envelope and small case it came it I have been over the moon with the pen. Pulling the pen from the case you get to feel the true weight of the pen, it’s not overly heavy but it has a good weight to it and you certainly know you are picking it up. While it has a bit of weight to it this does not affect long periods of use.

The design of the pen is amazing, CNC machined aluminium, that you can tell has been done to near perfection, with a perfect smooth finish. The grip is machined into the pen, and looks to be a bit clunky, but after a few moments of writing with the pen, it does not affect you too much, if you have a firm grip I can imagine a slight adjustment on your hold will be needed to get the grooves located within your fingers nicely.

Once you get into a flow of writing with this pen it become effortless, The nib is longer than some of my other pens, I needed to adjust my hold and writing posture a fraction. Also this is the first fine nib pen I have owned, and without much comparison to other fine nib pens this does not seem to be that fine. I am very happy with the thickness of the ink coming from this nib, this making me consider switching to using more fine nib pens.

nexus pen exploded

The pen is avialable buy direct from namisu. If you like a nice pen, and want something that is a great, strong everyday pen I would highly recommend this pen.


50 shades of grey

On Wednesday I took my wife to the cinema for her birthday to watch 50 shades of grey, she has read the trilogy series and really wanted to see the film. For me who’s not read the books and only heard and seen what’s been advertised in the media regarding the movie, from having now watched the movie for me it was not as bad as the media has made it out to be.

What I took it from the movie was yes it is a movie about BDSM, while that might not be everyone’s taste of sexual activity, just remember these are two adults consenting to these activities with each other. While you may have your own tastes, just because this is a movie don’t judge! Either can walk away at any point (which does happen) if they are not comfortable, and within the movie there was never a point at which either of them where forced into something that either of them could of stopped.

While people get hung up on the erotic parts of the story, there is also a sub story going on, the woman is slowly turning the man into a romantic.

Microsoft Sculpt Keyboard

Sculpt keyboard and mouse

Just over a year ago I purchased the Microsoft Sculpt Ergonomic Keyboard and Mouse set, and by far it’s the best keyboard and mouse set I have used. When I say it’s the “best” I have used, obviously I can not vouch for ever keyboard and mouse on the planet, but for me after trying numerous different keyboards and mouse combinations I have finally found something I’ll struggle to move away from.

Over the course of my working life, from working at a computer/laptop on a daily basis I have tried many different sets. From working on desktop computers with multiple monitors then single a monitor, working on laptops solely, or laptops with a monitor or two connected, to using a laptop with monitor and keyboard/mouse combination, and many more other variations, over time I have tired tens of different set up.

Before I purchased the Microsoft Sculpt set, I was back to using just a laptop solely at this point, and this was causing some issues with my hands, and wrists. I would leave work and my hands and wrists would ache, and being me I would just carry on, and as I carried on tinkering in the evenings this was also increasing the aching pain. After some research it became apparent that the amount of keyboard use I was doing was the cause of the ache and pain, I knew that I needed to find a solution sooner rather than later to avoid any long term damage. I began looking around for a solution to help solve my problems. In the lead up to making the purchase of the Sculpt set, I tired a couple of different keyboards, mainly because I was not sure on splashing out so much on the Sculpt, in hindsight I would of saved myself time and money in just buying the sculpt first.

Another reason that I never made the purchase straight off for the Sculpt was that I had tried the wired keyboard version of the Sculpt (Microsoft Natural Ergo), and struggled to get to grips with it. Having grown up on computers I found the split keyboard just a little too strange. Having read a load of reviews on the sculpt it was ticking all the boxes, apart from the split issue, this is my health I was talking about so I decided to just go for it, and told myself that it can not be that bad to learn how to use it. One of the biggest selling points for me is I need quite a compact keyboard so the reach for the mouse is not so far, I prefer the mouse to site quite close to the right side of the keyboard to avoid the stretching of shoulder and back, and the sculpt was the only one I could find that was a narrow keyboard, and wireless.

Having used the keyboard and mouse for just over a year I am completely satisfied with my purchase, and when/if it packs in on me I will be purchasing the exact same set again in an instant! In the set you get get a keyboard, mouse and a separate numeric keypad. I’ve never once use the numeric keypad.

The first impressions I had when opening it, where a bit daunting as I was not confident that I could get used to using it. The mouse seemed to be huge! Compared to an Apple Mouse its double the height plus some, but after putting it on the the desk and putting my hand on it to use it properly, the size of it never really bothered me, the size of the mouse actually made it feel more usable and my hand sat in a more natural position. As the hold is slightly angled it does not force you arm to twist inwards as much this reduces the stress and forces on your arm.

For the keyboard I placed the extra support bar underneath, making the keyboard angle away from me. You can use it without this rest if you prefer, I’ve not used it without it for any great length of time, it feels more natural with the support bar. Using the extra support bar helps set your fingers over the keys in a more natural way, it makes you arms and fingers all straight from your shoulders down (you may need to adjust your seating position to help).

One thing I noticed from using this keyboard on a daily basis, is that when I travel with just my laptop, within a couple of days of laptop use I can start to feel the ache and pain returning in my hands and wrists. On one of my trips I decided to take the set with me which helped but it’s not exactly the smallest thing to be carrying around in your bag, and is prone to getting damaged. If I travelled much more I would invest in another one, but as it’s generally a week a few times a year it’s not too bad to cope with for the time being.

Where did my time go?

Over the past 6 months, there would be days I would leave work and ask myself, what did I achieve today?

It was not always like this, as time has gone on I have taken on a more leadership based developer role that means I have to also task other developers with work during the day, help them out, more communication and meetings.

When I first started I would be doing 6 to 7 hours of development time, I’d probably be lucky to hit 4 or 5 of decent development time. This obviously comes with the territory of moving up in the world.

At the beginning of the year I decided I want to work out exactly where my time was being spent during a working day, to see if I could change how I plan my work days to be more productive. Much searching of the good old internet did not really lead me anywhere. I struggled to find something that would give me the insight I was after. Until one day someone on Twitter mentioned Rescue Time. I headed straight over to check it out, and since installing it 5 weeks ago I haven’t looked back.

Rescue Time

Rescue Time sits quietly in the background of the computer monitoring the applications you are using, for web browsers it can monitor the actual websites you have been visiting. Once installed there is pretty much nothing to do, give it a couple of days to monitor your usually activity then log in to the Rescue Time dashboard and see it’s tracking everything OK. You may need to categorise some of the software and websites you visit, as the application does not have categories for everything.

One tip I found was if you do web development use host names for each client/ project you work on so you can easily see which clients/ projects your time is being spent on.

As Rescue Time sits quietly in the background just monitoring your application usage, there’s not much else to do, you can login to the dashboard at any time to see your stats, it’s updated relatively quickly as you will see after installing it.
You can set daily goals, I currently have two goals set:
1. More than two hours per day on Software Development
2. Less than 2 hours per day on All Distracting Time

These are the defaults, I’ve not changed them as I wanted to set a base to work from then adjust over time.
Each week you can choose to receive a weekly report via email on the week just past. It’s a good way to get insight into the previous week, just the other week I forgot I had Rescue Time installed until I got my weekly email.

At the moment I am still using the Lite version, and it’s providing a great insight to how I spend my time. The reports are detailed enough if I want to drill down into where exactly my time is going.

Having had the application installed for over a month I have gotten a good insight into my work days/weeks and where my time is being spent, and how over the course of a day my time is being distributed between different items. One of the biggest shocks from using Rescue Time was how much time is actually spent in different applications, you may think you are only spending a few minutes here and there, but when you add these few minutes up over the course of a day they can easily turn into hours. The biggest shock for me was the amount of time that was spent in communication (Email and Chat).

Based on these findings I am going to adjust some items in my work day to see if I can find a better structure to my working day to improve my time distribution. Obviously this is quite hard due to factors that are out of my control, for example; When another developer needs my time to discuss work, or chat about something I may have asked them to do.
These sorts of distractions are hard to account for, but I think a better structured day will help in general to ensure I am getting the best use out of my time.

Below is my dashboard showing my logged time for February up until end of work today.

Rescue Time Dashboard

Valentines Day

Me and my wife have been together for just over 7 years, and we have never given each other a valentines day card or gifts, and we don’t plan on changing that!

The reason we don’t do valentines day is because we don’t need a specific day in a year to remind us to show our other half what we mean to each other, by wasting money on silly merchandise.

Instead we show our love to each other at all time throughout the year!

Now You See Me

Now You See Me by Pamela L. Todd

You may or may not be aware that my amazing wife has had her second book published it’s has been available to buy for a couple of months. Over the christmas break I decided I would go out of my comfort zone a pick up an eBook copy to read. This is not generally my pick of book, I am not one for fiction (I call it made up nonsense), but everywhere we were going people where commenting on my wife’s book and how good it was. So I decided that I had to pick up a copy and read it for myself. Boy was I shocked!

I say I was shocked, but not shocked in a sense that things she has written about make me embarrassed or blush. But shocked in a very good way. As I was reading through the book I kept stopping and having to pinch myself that I was reading a book that was written by my wife!

Being a person who would go out of their way to not have to read a fiction book, I was super surprised when I started reading the book and I could not put it down, I just kept telling myself, more more page and I’ll stop. That turned into half hour, then an hour. The story was very written and at points you thought you could see what was coming but quite the opposite happened, and then you think you are getting towards the end of the story, as you think not much more can happen then it changes and goes on for a few more chapters.

This being my first fiction book I have read since leaving school, and as I enjoyed it so much I am going to start considering a few more fiction books to add to my to read pile for the year.

You can buy a copy from Amazon or from the publisher TotallyBound.

Welcome klustar

Klustar Preview

Welcome klustar, a simple web application for managing/ organising your twitter favorites.


Just over four years ago, Joel (Joel Hughes) and I found ourselves discussing and planning the building of a web application for managing your Twitter favorites. Over the course of a couple of months, we laid some good foundations for the application and even come up with and bought the domain name. One thing lead to another and the project lost momentum. Nothing was ever really said on the subject again and we both moved on to other more important matters. Overtime, we watched a couple of other developer’s apps come and go in this space and it always brought back the idea of Klustar. However, nothing materialised.

A month ago I decided to change that, and over the course of a weekend I hacked together the very basic backend code to create the application. My love for the project was reignited. From that weekend onwards I made a promise to myself that I would continue with it and get it released to the world.

While it’s not fully released, last night and this morning I sent an email campaign inviting all those that had put their name down to have access and beta test the application. So far so good—feedback has been great and I am cracking on with features that I have mapped out and are coming in the near future.

Add your email to the list to be invited to the next round of beta testing, to also be notified of public release, or follow the Twitter account for information @klustarapp


This is not a regular thing for me, to recap on my year but for the past few days I’ve been thinking back about this year as a whole to remember the good and bad times, and to take time to reflect on the year. When I thought back, it was amazing to think some of the things I remember were actually this year as they feel like so long ago. Not sure if that’s me growing up more or just the way of life, but man this year has been a blast and a lot has happened!

Looking back on the year a few things stand out for me, I have either written about here or not:

On a personal note the biggest highlight of the year was me and my wife getting the excellent news that we are going to be parents again!

Baby Number 2

Onto 2015, I am not going to write out on here what I am planning for the following year but I do have a list (yes a paper list) of my plans and ideas for the coming year, some of these things while end up on here.

Responsible Responsive Design


The day Responsible Responsive Design was released I asked my boss if he would purchase a copy. The release of the book fell perfectly, as at work we had just started to embark on a new project that would be multi-device.

“Serve the right content across platforms, and tune for performance”

The book contains a lot of great information, and while the information contained within the book might not be anything new to yourself if you are constantly keeping up to date with HTML5/CSS3 and the latest ideas/features. What this book does do is consolidate all the latest information into a very small space and shows you real life examples of how some of these techniques have been applied on huge websites that are online today. Also, it shows you how this techniques can be used within your projects today.

Rather than spilling the beans on what’s in the book, as it’s a short book, only four chapters long, I urge you all to just purchase a copy from A Book Apart. For $9 (eBook) it’s an absolute bargin, and I am sure you’ll learn something from it.