Github for windows – I would send a pull request if I could

I am a huge fan of Github for Windows. I believe it is a major game changer for using GIT on windows machines.
It took a horrible installation experience and turned it into a pleasant surprise. I think that the creation and release of this product actually is the death of Mercurial on windows as well. I was a pretty vocal supporter of Mercurial on windows. But I typically will pick the tool with the least amount of friction and for version control, Github for Windows is it. I use TFS and Git at work and at home, I am only using Git now. So Thanks for that.

Now, that I am done with the Github fanboy act. I find that there is one area of friction for me when using GH4W. I am constantly using it to locate a repository. I usually don’t remember where the folders are on my disk drive as I switch between my many machines. Then I click on the Tools menu and then open in explorer, then I click on one of my batch files. I have one to open Visual Studio, one to force a deployment in my preferred cloud system, and a todo command that opens up trello in a browser. I don’t need bother with synchronizing bookmarks or urls because I keep the important information for each project in the repositories. Because I follow this convention, it seems like with a simple change to the GH4W client, I could reduce two mouse clicks and a bunch of wait time, Windows Explorer starting up, and then locating my batch files. I know I could just keep a console window open.. but why, I am already using GH4W, which is primarily a point and click app, so context switching to the command line at this points is kind of a pain. Once I am in visual studio I use the nuget package manager console to run powershell, I don’t need a separate window.


Above are the batch files I typically have in the root of my source control. It would be simple to enumerate these and add them to the tools context window of the repository. Here is a little mock up of what it could look like.


The existing context menu.

The context menu with additional commands located in the root of my repository.

 

If the project was open source, I would certainly send a pull request or keep my own fork for this feature alone. But since the project is not open source, this is my plea to the team to look into adding some extensibility to make our lives simpler.

 

If you think this is a good idea too. Let Github know you think it is by telling them here https://help.github.com/contact or tweet them here: http://twitter.com/github, or just comment on this blog saying you agree! I think that the team would be willing to listen to their users!

Related Articles:

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

About Eric Hexter

I am the CTO for QuarterSpot. I (co)Founded MvcContrib, Should, Solution Factory, and Pstrami open source projects. I have co-authored MVC 2 in Action, MVC3 in Action, and MVC 4 in Action. I co-founded online events like mvcConf, aspConf, and Community for MVC. I am also a Microsoft MVP in ASP.Net.
This entry was posted in GIT, software, source control, Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • ShawnC

    Sounds like a great idea but your images are not showing up to fully get the message across.
    Thanks

  • http://blogs.msdn.com/jimlamb Jim Lamb

    I cringed a little when I read that you have a batch file that opens Visual Studio. What, pray tell, does that batch file do?

    • http://mhinze.com Matt Hinze

      Probably something like “start Solution.sln” .. useful for command line folks

  • Eric Hexter

    I fixed the images:)  .  @Jim, it really does not mater what is in the batch files. they are whatever you need to make your life simpler.

  • Sam Critchley

    Mad photoshop skills ;)

  • Glenn Doten

    Nice idea, Eric, and I’m trying this out. As mentioned the open.cmd is probably just “start srcsome.sln” and todo.cmd is probably just “start start https://trello.com/board/…”.

    Would love to see what your deploy.cmd looks like.

  • Eric Hexter

    Here are the examples of commands:

    Deploy.cmd
    %localappdata%GoogleChromeApplicationchrome.exe https://manage.windowsazure.com/#Workspace/All/dashboard

    open.cmd
    srcconfplanner.sln

    todo.cmd
    %localappdata%GoogleChromeApplicationchrome.exe https://trello.com/board/confplanner/50747e067111eb05423fcf82