В проекте используется Maven, поэтому файлы POM являются основными источниками информации о проекте. В файлах проекта есть несколько полезных настроек, которые было бы неплохо сохранить.
OTOH IDEA, похоже, создает слишком много избыточных изменений в файловой структуре проекта, что загрязняет историю SVN и иногда создает конфликты.
Должен ли я хранить каталог .idea и файлы * .iml под контролем версий? в полном объеме? частично?
Обновление: Итак, лучшая практика, которую я нашел, работает для меня и моей команды:
- Проверьте все файлы IDEA, * .iml и .idea каталоги. Они содержат ценную информацию, и каждый раз, когда вы обновляете ее, воссоздайте ее.
- Создание приватной ветки для каждого разработчика
- перейдите в каталог .idea
- svn переключите его на аналогичный филиал
- Не проверяйте в файлах IDEA регулярные коммиты - они загрязняют историю. Отметьте их в специальных коммитах.
Таким образом, вы сохраняете содержимое каталога .idea в системе управления версиями, но не допускаете его для регулярных коммитов. Любой разработчик может иметь доступ к чьим-либо другим каталогам IDEA.
Обновление 2: С тех пор, как этот вопрос был написан, я изменил свою практику на , а не , проверяя любые файлы IntelliJ в системе контроля версий, как советовали многие респонденты. Это моя нынешняя практика для Maven и Gradle. Инструменты разработаны так, что критическая информация всегда может быть воспроизведена из исходных файлов .POM или .gradle. Когда файлы меняются, среда IDE надежно отслеживает изменения, поэтому вы не теряете свои файлы IDE так часто, что нет необходимости регистрировать их.
Обновление 3: Через 7 лет после того, как задать этот вопрос, оно все еще актуально. Те же самые лучшие практики применимы и к Gradle (возможно, и к SBT): не регистрируйте файлы IDE, заново создавайте их при необходимости из базовых файлов POM, .gradle или SBT.