When comparing WebStorm vs SmartGit, the Slant community recommends SmartGit for most people. In the question“What are the best Git clients for macOS?” SmartGit is ranked 2nd while WebStorm is ranked 13th. The most important reason people chose SmartGit is:
SmartGit can be used free of charge by Open Source developers, teachers and their students, or for hobby, non-paid usage. However, some features are only available with paid versions, like JIRA/GitHub Entreprise/Bitbucket integration, distributed review, DeepGit.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Node.js integration
WebStorm integrates with Node.js to allow for running, debugging, and unit testing of Node.js apps.
Pro Code refactoring support
To make sure your code can be easily maintained, you must first be sure to make it clean and tidy. This is the part where WebStorm really helps you. It automatically refactors your code by performing functions on it, such as extraction of variables, moving files, inline variable extraction, etc.
Pro Integrated code quality tools
WebStorm comes bundled with JSHint and JSLint. JSCS, ESLint, and Closure Linter can be installed via npm. They register as inspections and are customizable through IDE settings. They run automatically and will highlight potential issues. Pressing alt+enter on an issue will allow the user to view suggested fixes.
Pro Intelligent code completion
WebStorm has two types of autocompletion: structural completion and word expansion.
Structural autocompletion makes predictions based on its understanding of JavaScript objects, while the latter tries to predict the word currently being typed based on previously typed words. Word expansion also works in comments and docstrings and it's similar to vim's omnicompletion.
Both types of autocompletion work extremely well, have little to no problems and are quite fast even when loading suggestions on the go.
Pro Supports a wide range of plug-ins
Pro Maintains a local history
The local history feature in Webstorm tracks all your local changes in the source code that you are making. You can use it to view changes that you've made to your code and roll back whenever necessary.
Pro Typescript support
WebStorm offers typescript support for building typed JavaScript applications which improves refactoring and code completion, as well as helping to find bugs.
Pro Supports many JavaScript frameworks
WebStorm includes support for Meteor, Angular, and React.
Pro Reduces the amount of repetitive code that has to be written with code snippets
WebStorm includes a feature called Live Templates. Live Templates are predefined code snippets that can include variables. They're intended to increase productivity by reducing the amount of repetitive code that has to be written.
Pro Ability to base hot keys on previously used IDEs
When you install WebStorm, it allows you to choose from other IDE's for it to base it's hot keys on. So if you are switching from another IDE, it makes it a very easy transition and productivity is not adversely affected by having to learn new hot keys.
Pro Powerful git and GitHub integration
WebStorm has a powerful visual git tool, allowing for easy commits, visual diffing, merging, push/pull, rebasing, and inspecting the VCS history of a project. GitHub is supported natively - you can check out a project directly from GitHub.
Pro Built-in support for JavaScript task runners
WebStorm has support for Grunt and Gulp task runners.
Pro Built-in terminal/run tools
WebStorm (and really all of the IntelliJ IDEs) support the plugins throughout their plugin ecosystem which leaves you with 100s of tools to handle your automation tasks. There is a wide range of build-related plugins that help you by having pre-defined commands to execute with the click of a button. Out of any other IDE, WebStorm has by far the most coverage when it comes to tools for your development workflow.
Pro Theme support / tweaking
The theme is very easy to customize to your liking. You can change font-size, colors, highlighting colors, and more.
Pro Support for all major VCS systems
Webstorm supports not just Git and Mercurial, but Subversion, CVS, and Perforce as well.
Pro Multi-line select and editing
Pro Really good configurable code formatting
This integrates with other community tools like ESLint and editorconfig.
Pro Powerful Code Templates
Code Templates are powered by Apache VTL (Velocity Template Language) and allow for includes, custom variables, conditional blocks, iterators, and live templates.
Pro Special icons for most filetypes in project list
Webstorm comes with icons for many filetypes which makes it easier to find what you're looking for in the project list.
Pro Built-in web server
WebStorm has a built-in webserver that allows you to run projects from http://localhost:63342/ProjectName
.
Pro Has a built-in terminal
The IDE comes with a built-in terminal, a feature lacking in some lighter editors.
Pro Compilers for compile-to-JavaScript languages
WebStorm has built-in support for CoffeeScript and Dart.
Pro Support for Karma test runner
Karma allows you to execute unit tests and monitor code coverage. You can read more about using Karma with WebStorm here.
Pro CSS pre-processor support
WebStorm has built-in support for Sass which is one of the most stable and powerful CSS extension languages.
Pro Server and client-side debugger
WebStorm has a powerful debugger, with support for conditional breakpoints.
Pro Auto sync settings across team / machines / platforms
With the settings repository, you can easily enforce your development standards.
Pro Free for open-source development, students, and teacher
Non-commercial open source projects, and students and teachers (including classroom licenses) may qualify for a free license. There is a 50% off license for startups (under 3 years old). You can read more about it here.
Pro Different configurations for different projects
It is able to specify for example node versions, which will be used to run task for current project.
Pro Webpack support
Assists with configuration and understands module resolution.
Pro Cordova support
Cordova allows for building native mobile applications via HTML, CSS, and JavaScript.
Pro Dart language support
Autocompletion, syntax-highlighting, refactoring, and pub integration for Dart are supported in WebStorm.
Pro Coffeescript support
Autocompletion, syntax-highlighting.
Pro Low memory use
It may seem like a complex IDE and it does have a lot of functionality, yet it uses way less RAM than barebones-looking, Electron-based IDEs.
Pro Gulp support
Pro Interactive theme (color scheme) editor
Makes adjusting an existing or creating new themes a breeze. Especially due to things like inheritance, as well as easily exporting/distributing/importing the color settings which really only store where on deviates from the defaults (thus the resulting files are very small and relatively human-readable).
Pro Efficient and effective
Pro Free for non-commercial use (with some restrictions)
SmartGit can be used free of charge by Open Source developers, teachers and their students, or for hobby, non-paid usage. However, some features are only available with paid versions, like JIRA/GitHub Entreprise/Bitbucket integration, distributed review, DeepGit.
Pro Uncluttered UI
SmartGit has a rather clean and uncluttered user interface. All the most useful tools and information are displayed at all times or are otherwise just a couple of clicks away.
All repositories are displayed in the sidebar and through a tabbed interface you can view various info about a specific repository (files, branches, branch graph, etc). The most used git commands like pull
, push
, sync
, commit
and merge
are always available on top.
Pro Easy to use
The clean and intuitive UI makes SmartGit very easy even for people with no prior experience with Git, even after reading just a bit on how Git works and what the main commands are.
Pro Great overview of the project/repository's log
SmartGit's log viewer displays the full commit history in a clean UI. This can be filtered to only show commits matching a certain criterion (e.g. branch).
Pro Supports GitFlow
GitFlow provides a consistent development process by defining a strict branching model that is great for managing large projects. SmartGit allows for setting up and integrating into repos that follow this model.
Pro Smart embedded difference viewer
When the changes affect only a few characters in a line of code, the embedded difference viewers in the majority of competitors (such as SourceTree) show the whole line as removed and re-added. SmartGit highlights the characters that have been removed / added, so they are easier to read.
Pro Can be integrated with Github, GitLab, Bitbucket, and Atlassian Stash
Using OAuth, you can connect SmartGit with your accounts in Github, GitLab, Bitbucket, or Stash and access the remote repositories there. You can then clone, fork, commit or push to your remote repositories from inside SmartGit. You can also view and manage pull requests for your open source projects from SmartGit.
Pro Has the most features and most logical layout
Compared to gitk, git gui, SourceTree, GitKraken.
Pro Can edit file in workspace or index directly from the compare view
This is very useful when reviewing files before committing and finding a needed quick tweak.
Pro Syntax coloring for many languages
The built-in compare and conflict solver has syntax coloring with customizable colors.
Pro Auto stash
If normal Git commands would abort because of local modifications, SmartGit can stash them and apply later after the command ran successfully, e.g. a rebase.
Pro Supports Mercurial & SVN
Apart from Git, SmartGit supports both Mercurial and SVN via a git bridge.
Pro Log with fine-grained display of branches
There is no option of just showing the current branch or all branches, but you can select very fine-grained what branches/forks should be displayed.
Pro Auto-detects repositories on disk
You don't have to search all the repositories when trying out SmartGit the 1st time, but it finds all of them magically.
Pro Excellent dark theme
And support for own themes.
Pro Allows rearranging views
If screen space is limited, one can stack some views onto another. 2 layouts are available - "Main" and "Review" - with independent view positions.
Pro Great support
Support responds quickly and they genuinely try to help you! If it's a bug, it will often be fixed within days.
Pro Log: ability to see dangling commits and stash commits
Rebased, but not yet garbage-collected commits can be easily made accessible again, e.g. after a reset hard.
Pro Extendable with external tools
External tools (which have a command line support) can be integrated to be used to open/view files, for diff or as conflict solvers. E.g. editors like Notepad++ or VS Code, p4merge to diff images or kdiff3 as diff view/conflict solver.
Pro Great conflict resolver
Pro Portable version for Windows is available
SmartGit also has a portable bundle that can be downloaded and can be run from external devices (such as a flash drive for example) or to test-drive without leaving traces on the machine after removing.
Pro Best submodule workflow on the market
You can easily update submodules from the containing repo, unlike other GUIs that require you to open each repo separately. Saves a lot of time when working on a monorepo managed using submodules.
Pro Great filtering options
The file list view can be tweaked and filtered in many ways (e.g. regex can be used).
Pro The best multi-repository support
Can make a repo group containing multiple repos; it acts as a meta repo.
Can submit selected files from multiple repos in a repo group in one commit action; uses the same commit message in all the repo commits.
Pro Journal dedicated for current branch history
Showing commits from the current branch, its remote branch and one auxiliary branch. Independent of the that, there is a log window available that allows to view all (other) commits.
Pro Easy recover from mistakes
Across all those years, every mistake I did I was able to recover.
Pro Every git command is available through the GUI
Not every, but nearly all.
Pro Can rearrange Repository window and Log window views/panels
This allows great layouts as desired.
Pro Offers life-time updates
One payment, get updates for all future versions.
Pro Cross-platform
Pro GPG support
GPG in SmartGit makes for added security.
Pro Ability to follow only first parent in the Log window
This is extremely useful in histories with a lot of merges. You can focus on the changes on the main branch and expand into a merged branch with a single click when you need to.
Pro Evolution submission program
See here.
Pro Can detect issue numbers and links to the issue tracker
Supports GitBugTraq file.
Pro Supports selecting open issues from JIRA
Allows you to select the desired issue, instead of having to do it manually.
Pro Can handle big repositories with long history
4GB, 10 years. Most other graphical clients either slow down to a crawl or even crash, or don't support some of the needed features.
Pro UX design is synergy with how a developer actually works
It may look confusing at first, but once you know each part, you love how useful they are.
Pro Git squash
Git squash is a pain on CLI, and most Git clients allow some kind of squash during Rebase only. Ctrl+J shortcut helps for simple squash commits.
Pro Hotkeys for everything
Or nearly everything.
Cons
Con Occasional slow performance
WebStorm can sometimes choke all cores of the CPU. There are numerous reports of high CPU usage.
Con Not free for commercial use
A paid license is required to use WebStorm for commercial use. The license terms changed in November 2015 and currently require a subscription (per year: $59 personal, $129 for companies). Students can obtain a free non-commercial, educational license good for one year. There is also an option to pay on a monthly basis in addition to perks, such as a fallback commercial license that can be used for free.
Con Not open source
This application is proprietary, and thus cannot be modified, freely distributed, or trusted for security.
Con You may have to fiddle with the JVM memory settings in configuration files
To get it to run properly, you have to edit the JVM memory settings when you use Node.js. Node.js makes the small JS project you have into a "large" project that requires more memory.
Con Plug-in ecosystem isn't robust
Every framework or extension with any popularity whatsoever will have a plugin for VS Code. Sometimes they'll still support Atom. Only one in twenty will have native support for WebStorm.
If you want support for the latest libraries, you won't get it in WebStorm.
Con Non-native filesystem causes issues
The Java wrapper around the filesystem doesn't actively watch for file changes (by, for example, using the fsevents api on OS X), and as a result can become easily desynchronised from the actual filesystem.
If you have an external tool acting on your project (such as a gulp task or a third-party Git client), what you see in the file browser or in open tabs becomes out-of-date. There's a feature in the context-menu for manually synchronising directories with their real filesystem equivalent, but this shouldn't be necessary and is annoying to do. You usually remember to do that anyway after you've been trying to track down a bug on a line of JavaScript that Webstorm says doesn't exist for the last two hours.
It should be noted though that this is easily remedied by going to File/Settings/System Settings and checking the "Synchronize Files on frame or editor tab activation" option. It's also recommended to more explicitly represent your workflow within WebStorm itself. Most external tools/tasks can be handled with WebStorm. And if it's not in a plug-in, then you can handle it with the File Watchers.
Con Proprietary file dialogs
Webstorm doesn't use the native Windows and OSX file dialogs, which makes it more of a hassle to open projects.
For instance, you don't have access to your favorite folders on the left-hand side in their custom file dialogs.
Con Can't open multiple projects in a single instance
The only way to open multiple projects is to run a new instance of WebStorm which is not ideal. WebStorm can use up to 1-1.5 GB of memory.
Con Poor usability on option and menu navigation
You need to press a combination of keys or navigate through different menu levels to carry out the two most common things a developer does. For example, to run your code, the default is Shift+F10. To go to definition, you need to click on "Navigation" first. There is no sense to this: being forced to press a combination of keys hundreds of times or navigating through different menus can be a waste of time.
Con Bad default options compared to the competition
Examples are an unreasonably low number of undo steps and automatic saving (which causes webpack dev server to bundle VERY frequently).
Con Constantly trailing behind on support for its main features
The Jetbrains team do an admirable job attempting to keep up with support for the features they wrap, but they are running an un-winnable race. For example, WebStorm 11.0.2 hangs when trying to debug NodeJS 5.0+ projects (30+ seconds before hitting breakpoint). By the time they fix it, 5.1 will be out and something else will break.
Con Newer versions are increasingly unstable
This only happens when it's not a major version.
Con Very expensive and no multi-user licences
91 EUR per year per person for the base version is more expensive than top development IDEs, and is exaggerated.
No multi-user and no site licence either, which makes the licence management a pain.
Con Proprietary license
Not an open source license.
Con There is no lite version
A lite version would allow the user to do all the basic tasks quickly. If you need more complex tasks, you can also install the regular version beside it. A lite version would also be less memory hungry and would work on systems using low memory.
Con Free version doesn't support Gitlab Community Edition
It requires paid commercial version.
Con It is slower than the older versions
As more and more features are adding, the more slow the application becomes.
Con Diff display doesn't show long lines well
If changes are made in very long lines, the diff display is hard to navigate.
Con Absolute git beginners will find it very complicated
If you're just starting out with git, SmartGit might feel overwhelming as it does not dumb-down the complexities of git but exposes everything.
Con Font size too small and cannot be changed
Con Unintuitive UI
At first glance, the sub windows are poorly organized. For example, there isn't an easy way to navigate the files in the repository. It's drastically differently designed than other popular source control clients.
Con Currently lacks support for git subtree
It's a useful feature when developing several independent project modules in parallel.
Con Requires non-beginner level of GIT to appreciate fully
Con Handling of git repository security tokens & credentials
The handling of git repository security tokens & credentials is bad: one usually has to ask google, read discussions and then start to use try & error to get working access.
You would expect much more from software that calls itself smart.
Con Uses Atlassian JIRA for Support
Uses Atlassian JIRA for support. That requires you to provide Atlassian with personal information, including email addresses. Also doesn't work with JavaScript disabled.
Con The top 5-10 git Use Cases are not intuitive without knowing git
SmartGit fails to abstract git in a way that makes it easy / intuitive to use. For software that calls itself smart, you would expect someone who has worked with any version of control software for years to get up to speed quickly with SmartGit - without studying the Git Manual.
Con Doesn' t support remote coding or WSL
To work alongside tools like VSCode it really needs to be able to work with remote code by ssh and on Windows support for running git within WSL where the code is being developed.
Con Some git functionality has been renamed
In order to preserve the same interface across Git and Mercurial, some naming compromises have been made so that the various VCS it supports are all consistent with each other.
Con It can be slow and resource hungry
It was written in Java, which is known for being a resource hog, and it can be slow on some machines, as well as prone to errors if developers are not very experienced.