Git never ceases to amaze me!

At work, we use Subversion for version control. SVN is really good - but it disturbs my workflow which is 'Commit Early, Commit Often'. People create builds three or four times a day for testing and obviously they don't want my Work In Progress commits in that. They expect me to commit only after a feature is completely done. That was handicapping my pace of development.

So, the solution - Enter git-svn :D

git-svn allows me to checkout a subversion repo as a git repository. Since my working copy is a git repo now, I get all the fantastic features of git. At the start, I was using git in a very minimal way - make commits locally, created local branches and seamlessly switched between them. Even that helped greatly to my development pace.

As days pass by, I keep on discovering lot of gems in git - which make me like,

"Holy F, How did I exist without this these many days??" :P

Discovering git squash is one such incident. git bisect was another one. Today is one such day.

At work we use Target Process for project management. Issues, Requests, Feedbacks, Usecases everything is created in TargetProcess and we use the related Id in our commits. We don't commit anything to SVN without mentioning TargetProcess artifact Id.

There is a new feature which came as a request through email - and I have started development on it - made a few commits to my git repo. That feature was not yet added to the TP, so I can't push it to the SVN repo. While this was being done, another important bug fix came and I had to fix it immediatly and push it to the SVN repo. Now the unfinished feature's commits are there and on top of it there is this urgent bug fix commit. I need to push only the bug fix commit to the SVN repo without pushing any of the new feature's commit. I could've done the development of the new feature in a local branch - keeping the master clean. But that is not a option now. Damage is done. What I did is this:

  • I converted both the bugfix and new feature changes into git-am patches.
  • Deleted both the commits and made the master as clean slate.
  • Applied only the bug fix commit.
  • Moved the other feature commits to a separate branch.
  • Pushed to bug fix to the SVN.
  • Be happy!

I know this is trivial. May be some other better way could be there. But, the power and flexibility of git just made me fall in love with it all over again :D git never ceases to amaze me!

Published at : Thursday Mar,28 2013 at 00:20 | Tags : hacking, git, Subversion, svn, | View Comments
My first talk to a public audience :D

OK, This is very late. Actually on the last thursday ( May 21st) myself and my friend gave a talk on Version control systems and git in KLN College of engineering and technology for the GTUG/OSUG Summer camp organised by the guys there.

There were around 90 people there in the hall and it was supposed to be a presentation with an hands-on session. But only after reaching there we came know that, git and other tools are not installed on their computers. Their internet connection is also a sucky one :( So limited our session to a talk and a demo on our laptop.

I talked about the concepts of version control systems, why we need it?, what it can do? and the difference about distributed and centralised models etc etc. I also gave a brief intro about the history of git. The audience had no idea of software development, so had to keep my talk very minimally technical.

Next my friend Karthik continued and talked about the git command line tool, demo'ed and explained some of the basic commands. There was literally no response from the crowd but after the day when we asked some guys personally, they said that the session was nice :D

There were also other sessions on the day handled by my college-mates on Virtual box, Linux networking, Subversion and GIMP :)

The KLN guys were nice and their hospitality is good. Overall a awesome day for me, cos it killed the remaining bits of fear in me about addressing a crowd :D

The presentation slides are here -

PS: Thanks to stylesen for his presentation on Version control systems.

PSS: I have used latex-beamer to prepare presentations for this and it uber-cool :P

Published at : Thursday May,27 2010 at 11:09 | Tags : git, presentation, talk, | View Comments
Browse Archives
I am..
Azhagu Selvan SP
Atheist, FOSS enthusiast,
Pythonist, Student
Creative Commons License