Должен ли я зафиксировать все изменения каталога после svn: игнорировать все файлы.iml?
В проекте, над которым я работаю в IntelliJ, в среде IDE создается группа файлов типа.iml. При взгляде на svn st
в моем каталоге проекта все эти файлы показаны. Не желая фиксировать все эти связанные с IDE файлы в моем хранилище, я решил игнорировать этот тип файлов (как описано здесь):
svn propset svn:ignore "*.iml" .
Тем не менее, теперь мой проект показывает все мои подкаталоги как измененные, когда я проверяю статус subversion (svn st
). Я не хочу просматривать огромный список модификаций при подготовке к фиксации изменений, но я не решаюсь фиксировать все эти измененные каталоги.
Первый вопрос. Является ли игнорирование файлов.iml хорошей практикой при фиксации проектов IntelliJ?
Второй вопрос: безопасно ли фиксировать все мои каталоги проектов, которые были изменены в результате игнорирования файлов.iml?
Обновление: я решил откатить игнорирование файлов.iml, так как список файлов.iml короче, чем список измененных каталогов, которые мне нужно было бы зафиксировать. Я до сих пор не чувствую, что нашел для этого четкую лучшую практику. У кого-нибудь, кто регулярно кодирует с IntelliJ IDE, есть хорошее решение?
1 ответ
Вопрос 1: это те .iml
файлы, сгенерированные автоматически из других элементов, которые являются версионными или специфичными для вашего пользователя / рабочей станции? Если так, то да, вы не должны делать это (и игнорирование поможет вам в этом).
Вопрос 2: Если все, что вы делаете, это изменение свойств каталогов, тогда да. Если вы изменили файлы, которые вы также фиксируете, будут ли они нарушать сборку или иным образом нарушать какие-либо правила, которые ваш процесс разработки имеет для того, что следует и не следует фиксировать (и когда)?
Мое эмпирическое правило заключается в том, что каждый коммит должен быть связан только с одним изменением. Так что в этом случае я бы совершил только svn:ignore
изменения свойств, и если бы у меня были другие незафиксированные изменения, я бы зафиксировал их отдельно. Причина в том, что если мне придется откатить изменение позже, я не потеряю изменение A, потому что изменение B было в том же коммите, даже если они не связаны.