IntelliJ IDEA 9/10, what folders to check into (or not check into) source control?

Version ControlIntellij Idea

Version Control Problem Overview


Our team has just moved from Netbeans to IntelliJ 9 Ultimate and need to know what files/folders should typically be excluded from source control as they are not "workstation portable", i.e.: they reference paths that only exist on one user's computer.

As far as I can tell, IntelliJ wants to ignore most of the .idea project including

.idea/artifacts/*
.idea/inspectionProfiles/*
.idea/copyright/*
.idea/dataSources.ids
.idea/dataSources.xml
.idea/workspace.xml

However, it seems to want to check in the .iml files that exist in each module's root directory.

I originally checked in the entire .idea directory via the command line which is obviously not aware of what "should" be ignored by IDEA. Is the entire .idea directory typically ignored?

Version Control Solutions


Solution 1 - Version Control

We have a FAQ article covering this question.

> [The .idea] format is used by all the recent IDE versions by default. > Here is what you need to share: > > - All the files under .idea directory in the project root except the workspace.xml and tasks.xml files which store user specific settings > - All the .iml module files that can be located in different module directories (applies to IntelliJ IDEA) > > Be careful about sharing the following: > > - Android artifacts that produce a signed build (will contain keystore passwords) > - In IDEA 13 and earlier dataSources.ids, datasources.xml can contain database passwords. IDEA 14 solves this problem. > > You may consider not to share the following: > > - .iml files for the Gradle or Maven based projects, since these files will be generated on import > - gradle.xml file, see this discussion > - user dictionaries folder (to avoid conflicts if other developer has the same name) > - XML files under .idea/libraries in case they are generated from Gradle or Maven project

.idea directory is a replacement for the old .ipr (Idea Project) file and if you want to share the project between users, then you need to share .idea folder (with the exceptions mentioned in the FAQ) and all the .iml files.

Solution 2 - Version Control

Refer to GitHub's JetBrains.gitignore file to always have an updated listing of which files to ignore.

Solution 3 - Version Control

Not an exact answer to the question, but there are sample .gitignore files available here, including one for JetBrains which includes IntelliJ.

Solution 4 - Version Control

You might find this post interesting: https://stackoverflow.com/questions/1000512/merges-on-intellij-idea-ipr-and-iws-files

It seems to conclude that you should add all files except for: workspace.xml, dataSources.xml, sqlDataSources.xml and dynamic.xml. The answer there is focusing on having files that do not change simply from opening the editor or making ide specific changes.

Solution 5 - Version Control

I'm using PHPStorm.

Here is an example snippet for your .gitignore

# Ignore the following 2 PHPStorm files only workspace and tasks file
**/.idea/workspace.xml
**/.idea/tasks.xml

All other files in the .idea directory should be committed to your repository.

e.g: (commit everything else in the .idea directory)

new file:   .idea/.name
new file:   .idea/encodings.xml
new file:   .idea/framework.iml
...
Docs: How to manage projects under Version Control Systems

>Here is what you need to share: > > All the files under .idea directory in the project root except the workspace.xml and tasks.xml files which store user specific settings > > All the .iml module files that can be located in different module directories (applies to IntelliJ IDEA)

So basically, commit everything except workspace.xml and tasks.xml.

Solution 6 - Version Control

Yes, I believe so. You can check the SVN configuration to see what's ignored and add anything that you think should be ignored.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionbenstpierreView Question on Stackoverflow
Solution 1 - Version ControlCrazyCoderView Answer on Stackoverflow
Solution 2 - Version ControlwhyceewhiteView Answer on Stackoverflow
Solution 3 - Version ControlCodeClimberView Answer on Stackoverflow
Solution 4 - Version ControlTommy AndersenView Answer on Stackoverflow
Solution 5 - Version ControlAnilView Answer on Stackoverflow
Solution 6 - Version ControlduffymoView Answer on Stackoverflow