Version Control Systems Integration
IntelliJ IDEA is beefed up with the first-class version control tool providing integration with several Version Control Systems that includes both support of features specific for each VCS as well as unified interface and management for common VCS tasks.
Resolve Changelist Conflict
Working on more than one task at once, you may run in some problems with your changes. Say, you have changed some files in a changelist, then switched to another changelist and made a massive refactoring. Some files in the first changelist are touched too. Now, committing any of these changelists without the other may lead to trouble. With IntelliJ IDEA you can protect files in inactive changelists. When you?re trying to change them (by direct editing or by applying a refactoring) you will see a dialog indicating the files to be changed:

The dialog gives you a number of options to resolve the conflict. You can shelve the changes you made in an inactive changelist and unshelve them later. You can move the previously changed files into the active changelist so that they would be committed together. If all conflicting files belong to a single changelist, you can switch to it, and the new changes will be added there. Finally, you can just ignore the notification and manage the conflict manually.
This strict protection is not enabled by default. You should go to Project Settings -> Version Control -> Changelist Conflicts and select the Show conflict resolving dialog option.
Team Foundation Server integration
- Perform all common VCS functions (commit, update, revert, show differences and history, automatic check out of modified files, etc.)

- Create and merge branches, lock and unlock files and view the history of committed and incoming changes.
- Link the existing work items to your changelist
- Create and manage TFS workspaces

Git support
With the bundled Git integration plugin, IntelliJ IDEA enables you to:
- Carry out common VCS operations
- Clone remote repositories
- Pushing and pulling local repositories

- Perform rebasing, including interactive mode and multiple Git roots
- Flexibly apply various merge strategies
Subversion 1.5 Merge Support
Revert Committed Changes action

Revert any arbitrary code change, commited by you or your colleagues, by applying a reverse patch to the current source code.
Rational ClearCase support
IntelliJ IDEA completely supports Rational ClearCase through its unified version control systems integration and additionally provides support for Unified Change Management (UCM).

Shelve Changes
Smart change management with shelved changes and incoming changes view enables you to flexibly control your changes ensuring that they are not lost or in conflict with others'.
Create and apply patches
This feature which lets you create patches for arbitrary project code parts and later correctly merge them with the current version
Miscellaneous Improvements
- Reworked Apply Patch dialog
- Background mode for time-consuming operations
Unified VCS functionality
In addition to support for general and individual Version Control System commands, IntelliJ IDEA provides several unique features that simplify and speed up the work with any Version Control:

- Uniform interface for configuring common version control system settings
- Changelists support for all integrated version controls
- Commit an entire project, with meaningful notifications about possible conflicts
- Next, Previous, Rollback, Show Difference actions are available from the dedicated gutter bar in changed locations:

- View revision history for file/directory
- Annotate command allows reviewing the file line by line, with info in the left gutter area about the most recent updater and update time
- View recent changes with a single shortcut (Alt + Shift + C):

- Automatic checkout of all affected files when refactoring
- Advanced Version Control tool window, with multiple dedicated tabs: History, Status, Update Info, etc.
Delayed Commit
This revolutionary feature allows to avoid the well-known "5 o'clock check-in" problem. When submitted, the changes first go through the necessary tests. If the tests are passed successfully, your changes are automatically submitted to the version control system. In case of a failure, the responsible developer gets notification and can introduce necessary fixes, while the development process of entire team is not interrupted.
The feature is available if you have installed the TeamCity server and IntelliJ IDEA integration plugin. Read more about TeamCity ».
VCS Change List Management
All modified, deleted, unversioned and other files are displayed in the one Changes tool window. From this window you can:
- commit the changelists
- create new changelists (if you want to keep an eye on certain files and changes)
- remove the existing changelists, and set the default changelists
- rollback the modified files in the changelists
- add the unversioned files and directories to the version control
- move the selected files between the changelists
- show diffs on the selected files
- refresh the list of VCS changes displayed here
- jump to the source of the files from within the changelist

Code analysis and inspection before commit
IntelliJ IDEA can perform an automatic error-check, according to the current inspection profile, before committing your changes to the version control repository. You just need to enable the corresponding check box in the Commit dialog.
Read more about IntelliJ IDEA's static code analysis and code inspection ».
Subversion Client and Integration
IntelliJ IDEA supports both basic, and multiple advanced Subversion features in a convenient Subversion GUI:
- Subversion 1.6 support, with tree conflicts detection
- Display of merge sources in annotations
- Subversion 1.5 support, with Integrate function
- Convenient Subversion client and repository browser that allows direct project structure modification
- Import a project into Subversion
- Quick checkout of a project from repository (lightweight wizard mode)
- Checking out separate files or directories
- Comparing arbitrary file revisions with the help of a convenient visual Diff tool
- Lock file and Steal Lock directly from IntelliJ IDEA
- Rolling back changes for an entire file, or for just particular modifications
- Setting properties for files and directories
Perforce Integration
In addition to the features common for all supported version controls, there are features specific for the Perforce integration:
- Perforce offline mode, which enables the transparent VCS operation even when you are not connected to VCS server by keeping the history of your changes and merging them to repository when you are back on
- Perforce jobs support
- Auto-detection of files that are already under Version Control System
- All main Perforce commands available without the need to open client application: ability to submit or or update a separate file, directory or entire project
- Flexible changes browser, with ability to filter the changes by user, date, etc.
- Advanced support for changelists, including the ability to switch or move to the desired changelist directly from IntelliJ IDEA
CVS Integration
CVS integration with an easy to use and intuitive UI, that does not even require a CVS client to be installed, provides the entire spectrum of features:
- Automatic detection of project files associated with the CVS repository which allows you to start working with CVS right away, without configuring CVS roots
- Dedicated File View tool window, for viewing status and other CVS info on the project files
- Checking out separate files, with the ability to check out specified revisions, or check out by tag or date
- Updating project, file or directory, with ability to merge file branches
- Comparing arbitrary file revisions with the help of a convenient visual Diff tool
- In addition to file history feature, CVS integration also provides the unique selection history viewer
- Rolling back changes for an entire file, or for just particular modifications
- Powerful Merge tool that helps you quickly and easily merge changes
- Create tags and branches
- Enhanced dedicated tool window, with additional tabs: CVS Output, Browse, Errors, Editors and Watchers
- Enabling/Disabling and reviewing editors and watchers
- Quick checkout of a project from the repository (lightweight wizard mode)
- Quick import of a project into CVS repository (lightweight wizard mode)
- Browsing an arbitrary CVS repository
StarTeam Integration
- History of changes
- File status is easily detected by color
- Commands available for files are:
- Diff tool allows to visually inspect differences between the local and StarTeam versions
- Convenient feature for checking in an entire project
- Mark Project as Current, useful after working with StarTeam client
- Ability to view file history
- Reconnect and Refresh commands
- Check out all files when refactoring feature
Visual SourceSafe Integration
- Automatic add/remove on file creation/deletion
- New file status: hijacked (modified without checkout)
- New file status: obsolete (file modified locally but already removed from the repository)
- History of changes
- Commands available for files are:
- Easy way to visually inspect differences between the local and SourceSafe versions, with the help of the Diff tool
- Convenient feature for checking in an entire project
- Mark Project as Current, useful after working with SourceSafe client
- Command for opening SourceSafe Explorer
- Next, Previous, Rollback, Old text actions are available from the dedicated gutter bar in changed locations
- Check out all files when refactoring feature

