I’ve written about using SmartGit (SG) before[1][2] and I still strongly recommend that developers who manage projects use a UI for Git.
If you’re just developing a single issue at a time and can branch, commit changes and make pull requests with your IDE tools, then more power to you. For this kind of limited workflow, you can get away with a limited tool-set without too big of a safety or efficiency penalty.
However, if you need an overview or need to more management, then you’re going to sacrifice efficiency and possibly correctness if you use only the command line or IDE tools.
I tend to manage Git repositories, which means I’m in charge of pruning merged or obsolete branches and making sure that everything is merged. A well-rendered log view and overview of branches is indispensable for this kind of work.
I have been and continue to be a proponent of SmartGit for all Git-related work. It not only has a powerful and intuitive UI, it also supports pull requests, including code comments that integrate with BitBucket, GitLab and GitHub, among others.
It has a wonderful log view that I now regularly use as my standard view. It’s fast and accurate (I almost never have to refresh explicitly to see changes) and I have a quick overview of the workspace, the index and recent commits. I can search for files and easily get individual logs and blame.
The file-differ has gotten a lot better and has almost achieved parity with my favorite diffing/merging tool Beyond Compare. Almost, but not quite. The difference is still significant enough to justify Beyond Compare’s purchase price of $60.
What’s better in Beyond Compare[3]?
I could live without the Beyond Compare differ, but not without the merger.
To set up SmartGit to use Beyond Compare
*
C:\Program Files (x86)\Beyond Compare 4\BCompare.exe
“${leftFile}” “${rightFile}”
*
C:\Program Files (x86)\Beyond Compare 4\BCompare.exe
“${leftFile}” “${rightFile}” “${baseFile}” “${mergedFile}”
I was testing the Git support in Visual Studio Code and ran into a somewhat surprising limitation. For those that use IDE Git integration without an external tool, this would be a pretty disappointing message. What do you do then?