SmartGit - Finally a Window git client that doesn't suck
I've struggled a bit to start blogging again after the demise of use.perl.org.
I was so used to it's ways, it's foibles, and the mass of historical posts to refer back to that I've struggled a bit to bring myself to post here.
But having finally gotten past one of my biggest barriers, I find myself motivated to try and push a post through to completion (there was something to be said for use.perl's one-shot approach to posting, at least you couldn't procrastinate and abandon the draft once you started one).
And this momentous event?
The arrival of git as a version control system that I can actually take seriously now.
For years I've struggled with the git'erati and their zealotous ways.
First it was "It's awesome, just use Linux".
Then it was "It's fine, just use cygwin" ignoring the fact it clashes with Strawberry.
Later, this because "It's fine, just use msysgit" when most people on Windows don't like command lines and don't want to use them.
Finally, it's been "Stop trying to think about git like svn, it is a special flower!"
It's always felt like the same wrong argument. That git was so fast and magical and OMG that it didn't matter that it didn't work like people on 80-90% of the world's computers would expect it to, or that it used a whole parallel set of terms, or that it had guis that were both ugly and utterly unusable unless you already knew the command line versions.
No, clearly it was our (my) fault for just not being awesome enough for git.
So it is with great joy that I can report, as the unofficial poster boy of Perl's Windows Git Curmudgeons, that there finally exists a Windows git client that works normally.
http://www.syntevo.com/smartgit/index.html
It's free for non-commercial use, and relatively cheap for commercial use.
It's a normal desktop program with a normal svn like workflow of Checkout, Edit, Commit.
It comes with github support out the box, so checking out from github and pushing back on commit is as simple as entering a username and password and never touching a command line or generating private keys or any of the other miscellania.
I'm quite sure it's missing some amazing tool for git-pull-clone-bisect-normalise-transport --option --option CB572AC, but that's really completely and utterly irrelevant because now FINALLY someone new to git can open a project, make a simple change and commit it upstream from zero in well under an hour.
So here's to git, the autistic savant of the version control world, which is finally usable by normal people on all major platforms.
And I hereby withdraw any position against using git I may have held in the past.
What about TortoiseGit? Not graphical enough? :)
TortoiseGit is not only not graphical enough, but I've always found I'd rather use it through the command line than through the Explorer context menus.
I'm a pure windows programmer and once was in the camp that SVN is plenty fine. After using git for as little as 3 months however (exclusively through GUIs on windows) i wouldn't want to miss any of its features.
Sadly SmartGit does not seem to support one of the absolute key features: Staging file changes line by line.
Installing msysgit gives me access to git-gui, which is what i use exclusively to prepare commits. Whenever i want to make a commit i call it up and it shows me all changed files, and in each file the changed lines. Then i can select which lines or groups (hunks) of lines i want to commit. This forces me to think again about what i want to commit and often makes me notice that i still want to change something there or makes me notice outright bugs.
This should not be a particularly hard feature to implement or understand, yet git-gui is the only one that does, despite it bringing so much value to the development process.
Welcome to the Dark Side, Luke.
@Mithaldu: SmartGit supports staging changes line by line. It is called Index Editor and you not only can stage lines from the working tree, but also edit the index freely.
Can't live without that feature any more and miss it if I have to use SVN.
Yeah, i found it after talking to their support and having it pointed out to me over the course of three emails. (Which felt slightly condescending because they constantly took the stance that i didn't look deep enough, when the feature is in reality pretty damn well obscured.)
Sadly it lacks some things, such as right-clicking and quickly selecting/deselecting lines or blocks for staging (instead you have to manually copy/paste) and switching between candidate files quickly. It has some things over git-gui, but in the end it is far inferior in comfort.
After i pointed out to them that i won't be able to sell it to my company if my coworkers have to actually dig it up each time, instead of it being the default commit method they didn't reply anymore.
GIT is a single chopstick in a world full of forks, Windows 3.1 in DOS mode, a pack mule at a horse race...