Those of you using git will more than likely be pushing and pulling over a SSH connection (to github for example). Recently I posted about my preference for using git from within Powershell. However there was always one really annoying thing when compared to using git from my OS X and linux machines - the need to type my private key passphrase every single time I do a push or pull. It got to the point where I decided to do something about it. Enter ssh-agent.
Recently at work, my colleague Jeremy and I made the switch from using the task list in Outlook to Redmine for handling our list of tasks and features to be added to our internal software projects. At the outset, this seemed like a great idea and quite a step forward - I mean, Outlook? Its hardly designed with our job in mind is it. The list of personal annoyances associated with Outlook is quite extensive, but suffice it to say I find it clunky and restrictive and it gets in the way. Imaging running a marathon and having to open a door every 6 minutes in order to continue. That's what using Outlook feels like to me. Because of this, I spent the best part of a day sorting out a nice VM, installing Windows, then Ubuntu and configuring Apache, Passenger and Ruby all to get Redmine running, and was quite pleased with myself and our shiny new issue tracker by the end of it all.
It has now been a while using it instead of Outlook and while it has solved several of the problems I have with Outlook (not to mention it looks better and has a more intuitive UI in most places), it did not solve the problem as efficiently as we would have liked.
I have become quite fond of Powershell lately and enjoy its flexibility. As part of this flexibility, it has impressive scope for customisation and modification similar to Bash (although arguably in a much nicer way). My main bugbear with the default installation of Powershell is the horrible prompt you are provided with. As such, I have modified my prompt to better suit my needs including useful details about the git repository when within one.
The Git part of my prompt is inspired by this blog post, but with some of my own ideas and tweaks. It's also worth noting that likeothers, I use the excellent Console app, which makes a much nicer host application for Powershell (and cmd.exe, bash, etc).
Git is arguably the latest and greatest SCM tool available - my latest tool of choice in place of the old favourite Subversion, and as such have decided to move to using it for my personal projects. In addition, we have decided to use it at work, where we run operate using a mainly-Windows environent. This lead me on to setting up a Git server on Windows. This was achieved using Cygwin and plain old SSH/Git. This serves us fine for our needs, but a comment on twitter got me thinking - can Gitosis be used under Cygwin for a slicker experience. The answer is yes, and this post will explain how.
Up until recently, Subversion has been my SCM tool of choice and I have used it on almost all projects. However like many other people, I have been drawn to using Git. There are plenty of good articles available describing the benefits Git can bring (Nick Quaranto provides a nice summary of Git tutorials and articles) and as such I will not repeat them all here. However in my case, the move to Git has bought up a question relating to version numbering of applications.
Those of you who have been following me on Twitter will know that I've recently decided to focus on learning Python, and looking into python-based web frameworks like django and pylons. As I've been reading through the various materials about python, it strikes me that its a very clean language, and more importantly, multi-purpose. Generally my development is done in either PHP or C#, and whilst the same can be said C#, PHP has always been all about the web. Of course, it can do a lot more than that, but first and foremost it solves the problem of building web applications. To this end, I have never used it for general shell/admin duties such as deploying sites - this job has fallen me using manual deployment in the past and Capistrano more recently.
Whilst I like the solution provided by Capistrano, its always seemed a little bit strange to use a Ruby-based tool to deploy sites which are never anything to do with ruby. Yes - I'm picky. However, since I will be heading further into the world of python, I thought now is as good a time as any to see if there is a python-based alternative. The answer is yes - Fabric