RubyMine offers tight integration with VCS, includes database and deployment tools, and has a vibrant plugin ecosystem.
See what has been committed to the VCS by other team members, and refer to the Incoming Changes view for code changes not yet integrated into your local copy. Group your changes into multiple change lists for better organization.
A built-in visual merge tool resolves all conflicts in a quick and intuitive manner. The changes made locally are highlighted as you type in the editor gutter, providing intuitive navigation and 2-click rollback for individual changes.
A commit dialog allows you to perform code analysis, check for TODOs left in your code and reformat the code. If you notice a small issue while looking at a diff, no need to go back to the editor—just unlock the editing mode and apply changes in-place.
You can easily track changes and view differences between two files, or compare two versions of a file (local changes or changes between local files and their revisions in a remote repository) using the integrated graphical Diff Viewer.
If you need to work with the repository files and have uncommitted changes, just shelve them—the IDE will keep the changes safe until you decide to commit or merge them.
Create patches directly from the code to later apply and merge with repository files. You can also revert any arbitrary code change, committed by you or your colleagues, by applying a reverse patch.
Access Oracle, SQL Server, PostgreSQL, MySQL, SQLite and other databases right from the IDE. RubyMine provides a UI for introspecting all objects, adding and editing tables, adding columns, indexes, constraints, etc.
SQL code can be injected to other languages or edited with syntax highlighting, smart code completion, on-the-fly code analysis, code formatting and navigation.
A powerful data editor lets you add, remove columns and clone existing ones. Navigate through the data by foreign keys, or use text search.
The Built-in SSH Console let you connect to any remote machine and perform various actions via SSH. In addition, SSH Remote Tools can be configured to run any remote tool right from the IDE with a single keystroke.
Using a remote Ruby interpreter instead of a local one lets you run and debug your application on a production-like or testing environment, be it the real server or a virtualized one created with Vagrant or Docker.
Integration with Vagrant allows you to share a development virtual machine by sharing a simple script. Other developers can then launch an identical machine by running the ‘up’ Vagrant command.
RubyMine integrates Docker, a popular open platform for distributed applications. Specify a Ruby interpreter from a Docker container and use it in your project for running, debugging and profiling your applications.
Following the main concepts of Chef, a configuration management tool, RubyMine supports cookbooks, recipes and resources. It provides marking/detection options for a cookbook and code insight for a resource along with its attributes.
Take advantage of syntax highlighting and auto-formatting for puppet manifests; smart code assistance for variables, classes, resource types and parameters, facts and external functions and types; and the ability to set up several environments.
Link your issue tracker account with your project and work on it in the context of tickets and tasks. RubyMine provides support for Jira, JetBrains YouTrack, PivotalTracker, Redmine, Mantis, GitHub and Gitlab, Bugzilla, and more.
Dozens of plugins are available in the IDE Plugin Repository for when you decide to enrich RubyMine with support for new frameworks, integrated tools, and additional productivity features.