/
Add ".idea" folder under VCS (SVN) [5.2.1-RC1]

Add ".idea" folder under VCS (SVN) [5.2.1-RC1]

At Intechnic we're using PhpStorm (http://www.jetbrains.com/phpstorm/) to develop In-Portal. It always creates an ".idea" folder in root of the project. Before we haven't analyzed what exactly is stored in that folder and simply excluded it from VCS commits. It turns out this was a mistake, because majority of files in the ".idea" folder was in fact designed to be committed (see https://intellij-support.jetbrains.com/entries/23393067) in VCS and shared across multiple developers working on same project.

This will work, because all folder/file paths in these sharable configuration files are stored in relative format (e.g. $PROJECT_DIR$/....). So I think, that:

  1. we should add ".idea" folder under VCS control
  2. exclude following (via "svn:ignore" property) from it:
    • dictionaries - folder, that contains user-specific spelling dictionary entries
    • libraries - folder, that contains compiled data that might contain user credentials
    • dataSources.ids - data source data
    • dataSources.xml - data source configuration
    • workspace.xml - IDE layout on a project
    • tasks.xml - list of tasks, that user created locally
    • deployment.xml - list of deployment servers specific to user computer

How to configure project to be shared

  1. when creating "Scopes" mark then as shared
  2. instead of using Global code style copy it to the project instead
  3. use shared inspection profiles

How to migrate existing projects

  1. close project and exit from PhpStorm
  2. rename ".idea" folder into ".idea.bak"
  3. perform VCS update on a project
  4. copy over following folders/files (if you have them) from ".idea.bak" info ".idea" folder (basically same folders/files that were excluded from commit previously):
    1. dictionaries
    2. libraries
    3. dataSources.ids
    4. dataSources.xml
    5. workspace.xml
    6. tasks.xml
    7. deployment.xml
  5. start PhpStorm and open project

Related Tasks