{"id":2388,"date":"2012-02-14T21:36:35","date_gmt":"2012-02-14T11:36:35","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=2388"},"modified":"2012-02-14T21:36:35","modified_gmt":"2012-02-14T11:36:35","slug":"the-pleasures-of-git","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2012\/02\/14\/the-pleasures-of-git\/","title":{"rendered":"The pleasures of git"},"content":{"rendered":"

\"\"<\/a>
\nHere’s a view of my development repository, with some of my commits from the last two days.<\/p>\n

In the image, the interesting bit is the set of lines and dots running up the middle (under the “Graph” heading). \u00a0Each dot is a group of changes I made. \u00a0Each colour represents a different branch of development. \u00a0And the dots are arranged in order chronologically, with my most recent changes at the top.<\/p>\n

So as you look from the bottom of the shot to the top, you can see branches branching off from the blue “master” development, and then later on being merged back into master. \u00a0(In fact, in the view here, I had two different branches both named “trees”, and which are both being drawn in yellow. \u00a0Despite having the same name, they were actually different development branches)<\/p>\n

The fascinating thing (at least for me) is to see how much I’m working across different branches simultaneously — at most points on this graph, I have three different development timelines active at once. \u00a0As recently as three months ago, this graph was a single straight line, as every commit was just happening straight into the master development branch.<\/p>\n

The interesting point is that in retrospect, I was working across multiple development paths back then just as much as I am now; \u00a0each commit was likely to be in an entirely different area, working on different projects at different times. \u00a0The difference is that now it’s organised in a sensible way. \u00a0It’s trivial to see which of my commits belong to which larger goal, and what larger goals are still in progress. \u00a0Even if I’m rapidly switching from task to task. \u00a0Previously, I had to manage all of these things in my brain; \u00a0now, the version control system helps keep track of it all for me. \u00a0Which frees me to think about the code, rather than about the implementation strategy.<\/p>\n

It’s very difficult to imagine going back to a traditional non-intense-branching development methodology, now. \u00a0It’s not actually a change to how I develop — I was already madly jumping around between tasks! \u00a0The intense-branching approach just makes this development practice far easier to track and understand, when viewed from months later.<\/p>\n","protected":false},"excerpt":{"rendered":"

Here’s a view of my development repository, with some of my commits from the last two days. In the image, the interesting bit is the set of lines and dots running up the middle (under the “Graph” heading). \u00a0Each dot is a group of changes I made. \u00a0Each colour represents a different branch of development.…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[7],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-Cw","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/2388"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=2388"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/2388\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=2388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=2388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=2388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}