Я должен сохранить свои файлы проекта при управлении версиями? [закрытый]

86
задан jmort253 22 October 2015 в 09:02
поделиться

12 ответов

Вы действительно хотите сохранить в управлении версиями любые портативные файлы ,
установки значение:
Любой файл, который не имеет никакого полного пути в нем.
, Который включает:

  • .project,
  • .classpath (, если никакой полный путь не использовал , который возможен с использованием переменных IDE или переменных пользовательской среды)
  • настройки IDE (который является, где я не соглашаюсь сильно с 'принятым' ответом). Те настройки часто включают статические правила анализа кода , которые жизненно важны для осуществления последовательно для любого пользователя, загружающего этот проект в его рабочую область.
  • IDE определенные рекомендации настроек должны быть записаны в большом файле README (и имеющими версию также, конечно).

Эмпирическое правило для меня:
необходимо быть в состоянии загрузить проект в рабочую область и иметь в нем все, что необходимо правильно настроить его в IDE и начать в минутах.
Никакая дополнительная документация, страницы Wiki для чтения или что нет.
Загрузка это, настраивает его, пойти.

93
ответ дан VonC 24 November 2019 в 08:01
поделиться

. проект и .classpath файлы да. Мы однако не сохраняем наши настройки IDE в управлении версиями. Существуют некоторые плагины, которые не делают хорошего задания сохраняющихся настроек, и мы нашли, что некоторые настройки не были очень портативными от одной dev машины до следующего. Так, у нас вместо этого есть страница Wiki, которая выделяет шаги, требуемые для разработчика устанавливать их IDE.

30
ответ дан Kevin 24 November 2019 в 08:01
поделиться

Это то, что я считаю сгенерированными файлами, и как таковой, я никогда не размещаю их при управлении версиями. Они могут отличаться с машины на машину и разработчика разработчику, например, когда людям установили различные плагины Eclipse.

Вместо этого я использую инструмент сборки (Знаток), который может генерировать начальные версии этих файлов, когда Вы делаете новый контроль.

16
ответ дан Chris Vest 24 November 2019 в 08:01
поделиться

Я порван между двумя опциями здесь.

С одной стороны, я думаю, что все должны быть свободны использовать набор инструментов разработки, они являются самыми продуктивными с, пока все исходные артефакты хранятся в управлении версиями, и сценарий сборки (скажите, что МУРАВЕЙ или Знаток) гарантирует соответствие стандартов путем определения точно, который JDK использовать, какой, версии которого сторонние библиотеки зависеть от, осуществляя проверки стиля (например, checkstyle) и рабочие модульные тесты и т.д.

, С другой стороны, я думаю, столько людей использует те же инструменты (например, Eclipse) и часто намного лучше иметь некоторые вещи, стандартизированные во время проектирования вместо времени изготовления - например, Checkstyle намного более полезен как плагин Eclipse, чем как МУРАВЕЙ или задача Знатока - что лучше стандартизировать на съемочной площадке средств разработки и единого набора плагинов.

я работал над проектом, где все использовали точно тот же JDK, ту же версию Знатока, ту же версию Eclipse, тот же набор плагинов Eclipse и те же конфигурационные файлы (например, профили Checkstyle, правила средства форматирования кода и т.д.). Все они были сохранены в управлении исходным кодом - .project, .classpath и все в .settings папке. Это сделало жизнь действительно легкой во время начальных фаз проекта, когда люди постоянно настраивали зависимости или процесс сборки. Это также помогло очень при добавлении новых начинающих к проекту.

В итоге, я думаю, что, если нет слишком многих возможностей религиозной войны, необходимо стандартизировать на основном наборе, разрабатывают инструменты и плагины и гарантируют, чтобы соответствие версии в сценариях сборки (например, путем явного определения версии Java).I не думало, что существует много преимущества для хранения JDK и установки Eclipse в управлении исходным кодом. Все остальное, что не является полученным артефактом - включая Ваши файлы проекта, конфигурацию и сменные предпочтения (особенно средство форматирования кода и правила стиля) - должно войти в управление исходным кодом.

P.S. при использовании Знатока существует аргумент в пользу того, чтобы сказать, что .project и .classpath файлы являются полученными артефактами. Это только верно при генерации их каждый раз, когда Вы делаете сборку, и если Вы никогда не должны были настраивать их вручную (или непреднамеренно изменили их путем изменения некоторых предпочтений) после генерации их от АНГЛИЧАНИНА

7
ответ дан Vihung 24 November 2019 в 08:01
поделиться

Нет, потому что я только файлы управления версиями, которые необходимы для создания программного обеспечения. Кроме того, у отдельных разработчиков могут быть свои собственные определенные для проекта настройки.

6
ответ дан John Topley 24 November 2019 в 08:01
поделиться

Нет, я - тяжелое Знаток пользователь и использую Q для плагина Eclipse, который создает и сохраняет .project и .classpath обновленными. Для других вещей, таких как настройки для плагинов я обычно поддерживаю README или страницу Wiki об этом.

Также те я работал с этим, предпочитают, чтобы другие IDE просто использовали плагины Знатока для генерации файлов, должен был сохранить их IDE (и они) счастливый.

5
ответ дан Andreas Holstenson 24 November 2019 в 08:01
поделиться

Это - все мнение, я предполагаю - но лучшие практики за эти годы указывают, что файлы, характерные для данного IDE, не должны храниться в управлении исходным кодом, если Ваша вся организация не стандартизирована на одном IDE, и у Вас никогда нет намерения переключения.

Так или иначе, Вы определенно не хотите пользовательские сохраненные настройки - и .project может содержать настройки, которые являются действительно конкретным разработчиком.

я рекомендую использовать что-то как Знаток или Муравей как стандартизированная система сборки. Любой разработчик мог настроить путь к классу в их IDE через несколько секунд.

5
ответ дан Kevin Day 24 November 2019 в 08:01
поделиться

Да, за исключением .settings папки. Фиксация других файлов работает хорошо на нас. Существует подобный вопрос здесь .

1
ответ дан Community 24 November 2019 в 08:01
поделиться

Кажется, что эти файлы проекта могут изменяться со временем, поскольку Вы работаете над проектом так да, я размещаю их при управлении версиями.

0
ответ дан dbrien 24 November 2019 в 08:01
поделиться

Да. Все кроме сборки производится.

0
ответ дан nitind 24 November 2019 в 08:01
поделиться

Мы используем IntelliJ IDEA и держим ".sample" версии проекта (.ipr) и файлы модулей (.iml) под контролем версий.

Немного важнее совместное использование и повторное использование , чем управление версиями, ИМХО. Но если вы собираетесь поделиться этими конфигурациями, что может быть лучше для их размещения, чем репозиторий, рядом со всем остальным.

Некоторые преимущества общих и версионных файлов проекта:

  • Вы можете проверить любой тег / ветку и начать работать над этим быстро
  • Облегчает новому разработчику сначала настроить среду разработки и набрать скорость
  • Это лучше соответствует принципу DRY, который всегда приносит большое удовлетворение. До этого всем разработчикам приходилось время от времени настраивать эти вещи, по сути выполняя повторяющуюся работу. Конечно, у каждого были свои маленькие способы избежать повторения, но, глядя на команду в целом, было много дублированных усилий.

Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: что такое «источник» и каталоги "test source"; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект но, глядя на команду в целом, было много дублированных усилий.

Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект но, глядя на команду в целом, было много дублированных усилий.

Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект

Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект

Обратите внимание, что в IDEA эти файлы содержат такие конфигурации, как: каковы каталоги «исходный код» и «исходный код тестирования»; все о внешних зависимостях (где расположены jar-файлы библиотек, а также связанные источники или javadocs); параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект параметры сборки и т. д. Это то, что не различается от разработчика к разработчику (я категорически не согласен с этим ). IDEA хранит больше личных настроек IDE в другом месте, а также любые конфигурации плагинов. (Я не очень хорошо знаком с Eclipse; это может быть совсем другое, а может и нет.)

Я согласен с этим ответом , в котором говорится:

Вы должны иметь возможность загрузить проект в рабочее пространство и иметь в нем все что нужно для правильной настройки вверх в своей среде IDE и приступайте минут. [...] Загрузите, настройте, вперед.

И у нас это так, благодаря файлам проекта с поддержкой версий.

0
ответ дан 24 November 2019 в 08:01
поделиться

Хотя я в целом согласен с подходом «не версии сгенерированных файлов», у нас есть

Примечание: меня также интересует ответ VonC , особенно по поводу пункта «включить Eclipse в течение нескольких минут». Но для нас это не имеет решающего значения.

Наш контекст - Eclipse + Maven с использованием подключаемого модуля m2eclipse. У нас есть общая среда разработки, с максимально общими каталогами. Но бывает, что кто-то пробует плагин, или меняет мелочи в конфигурации, или импортировать вторую рабочую область для другой ветки ...

Наша проблема в том, что создание .project выполняется при импорте проекта в Eclipse, но не обновляется во всех случаях позже . Это печально и, вероятно, не навсегда, поскольку плагин m2eclipse улучшится, но сейчас это правда. Таким образом, мы получаем разные конфигурации. Сегодня у нас было следующее: несколько сущностей были добавлены ко многим проектам на какой-то машине, которые затем вели себя по-другому : - (

Единственное решение, которое мы видим, - это версия файла .project (чтобы избежать рисков, мы сделаем то же самое для .classpath и .settings). Таким образом, когда один разработчик изменяет свой pom, локальные файлы обновляются с помощью m2eclipse, все они фиксируются вместе, и другие разработчики будут видеть все изменения.

Примечание: в нашем случае мы используем относительные имена файлов, поэтому у нас нет проблем с тем, чтобы поделиться этими файлами.

Итак, чтобы ответить на ваш вопрос, я говорю да, зафиксируйте эти файлы.


Мне также понравилось:

  • ответ Rich Seller
1
ответ дан 24 November 2019 в 08:01
поделиться