Skip to main content

DevOps - SVN Workflow

I've read about DevOps  a wikipedia and one aspect of it is not clear for me. How in Flickr they use Subversion? At this presentation:
page: 38 - Always ship trunk
page: 40 - Example of "branching in code"
And there is Trunk for development, release branch to support etc. But how it looks like in Flickr? There is at page 38 "Always ship trunk" so developers must work on branches most of the time? Or first commit is with 'branching if's" in code?
Personally I doesn't like a if's for branching idea...

Recently I read about similar approach in Google Chrome Release Cycle in which workflow are embedded   configuration options to do branching in code.
1: Everyone works on trunk, then they create stable branch and work on dev and to stabilize branch and ship all scheduled functions.
2: They work on trunk, has 3 channels, trunk, beta and stable to work and are using branching in code to minimize merges.
But Chrome is a big project and it is still app. For now I think that for smaller projects 3 lines are to much, and I still think that I prefer SVN branches that branches in code...

At least I found it quite popular and used in couple of books as a 'good practice'.
Despite Chrome, standard SVN repository structure is like :
This is great, but existing site development is much more like at Flickr, small changes but often to make users feels that site from day to day has new features or at least team is fixing bugs fast :-]

Combine them

Now I think about approach similar to both of them( Chrome(1) flow + Flickr + Standard).
1: Everyone commits to trunk
2: There is stable branch that changes are merged to when ready
3: Big changes creates new stable branch(release 2.0)

And when I think about changes:
1-2 is about small tweaks and bugfixes like in Flickr
3 is about bigger changes, eg change of database to NoSQL, new website design or at least something to have opportunity to clean-up stable branch and merge it with trunk :)

Maybe I am reinventing the wheel, please comment and let me now what you think about it :)


Popular posts from this blog

How to simulate slow connection (developer proxy in Node.js)

Update: If you use Chrome then you can use "Throttling" so simulate slow network for all your assets. This should be easier than proxy.

Toggle device modeChoose Network type.Refresh the page 


For some time I wanted to use some proxy for development and testing of eg. slow internet connection, but it was hard to find something useful and free. I know there is Charles but buy it to use it at most one in a month is not for me.

I started thinking about Node.js, maybe I can write proxy for me? But fortunately I found one.

With this module I can write really short code to create slow server:

var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { var buffer = httpProxy.buffer(req); setTimeout(function () { proxy.proxyRequest(req, res, { host: 'localhost', port: 8080, …

Course Review: The Bitfountain iOS 8 with Swift Immersive

This is second big iOS learning project. For first one read iOS Programming book review. As I only have two of them done I have to compare them somehow.

I am mindful that it took me a really long time to finish it (since last autumn). For a couple of months this year I didn't even have the internet to learn it, so it could not be helped. But last half of the June I've spent watching the videos every day and managed to finish it before any new internet problems.

So how was it?
In my opinion, it's great if you're starting out. There are a lot of basics, and seeing how to do things in XCode just makes your learning much easier than looking at the photos in the book. On the other hand, learning is more shallow and it is much easier to just follow the videos and learn only the basics without bigger picture about iOS SDK. I somehow missed more challenging exercises (even though I don't like to do them ;)

Course it pretty long but many videos are quite short (1-2…