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