Должен ли я создавать новую ветку для каждой новой обнаруженной ошибки?

Разработка решения Brad Turek ... Один из шаблонов проектов IntelliJ Java по умолчанию ожидает файл Main, определяющий точку входа метода класса Main и main () . Если метод содержится в другом файле (и классе), измените конфигурацию запуска:

Запустите окно конфигурации

  1. Когда проект открыт в IntelliJ, используйте меню Run: Edit Configurations ..., чтобы открыть окно конфигурации сборки.
  2. Если запись для основного класса не отображает имя вашего файла, содержащего класс, отображающий метод записи main () , введите правильное имя файла. (Конфигурация на изображении неверна, поэтому на панели конфигурации она красная.)
  3. Метод ввода main () принадлежит классу (и файлу) ScrabbleTest . Таким образом, изменение основного класса: до ScrabbleTest исправляет ошибку времени выполнения.

Как уже отмечалось, вы должны использовать ReBuild с использованием новой конфигурации. Я использую пакет, но это не похоже на IME. Надеюсь, это поможет.

11
задан Dave 29 January 2010 в 16:20
поделиться

8 ответов

Вот стратегия, которую я использую. Я развиваю в главном багажнике. Когда программное обеспечение выпущено, я его величию (скажем, v1.0). Когда ошибки входят, закрепите в багажнике ветви, а затем объединитесь обратно в главный ствол. Вот хороший финал стратегий, которые доступны: http://www.cmcrossroads.com/bradapp/acme/branching/branch-tructs.html

7
ответ дан 3 December 2019 в 08:04
поделиться

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

3
ответ дан 3 December 2019 в 08:04
поделиться

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

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

1
ответ дан 3 December 2019 в 08:04
поделиться

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

Дополнительно каждая версия продукта имеет dev и основную ветку. Разработчики разрешено свободно обязывать ветку Dev, не боясь вмешиваться в релиз (только другие разработчики!)

0
ответ дан 3 December 2019 в 08:04
поделиться

У нас такая же проблема (или почти), и я думаю, что каждая команда разработчика имеет его. Я могу, к сожалению, еще не даст вам ответ по опыту, а только теоретический.

На мой взгляд, до тех пор, пока это исправлена ​​ошибка, его следует развернуть как можно скорее. Что я собираюсь реализовать, представляет собой функцию отраслевой стратегии и отрывной ветви. Это означает, что мы должны дифференцировать особенности от ошибок. А то, что развертывается разветвляется отдельно (или помечено в нашем случае)

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

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

2
ответ дан 3 December 2019 в 08:04
поделиться

Если вы не используете распределенные SCM (Mercurial, Git, ...), где разветвление в основном свободно, ветвясь на каждую ошибку звучит как необоснованное количество работы.

Обычная стратегия с центральным репозиторием SCM состоит в том, чтобы отметить редакцию, который должен исправить ошибку, и тестировать на сборку, сделанную с более поздним пересмотром. Затем вы можете объединить соответствующую версию обратно в отзыв.

Мы используем Mercurial, и разветвляясь, чтобы исправить ошибки, а затем слияние изменений назад довольно выполняется в распределенном SCM

0
ответ дан 3 December 2019 в 08:04
поделиться

Это зависит от вашей системы управления версиями. Если вы используете GIT, где филиалы дешевы и слияния легко, то я определенно создал бы новую ветку для каждого исправления. Это позволяет поддерживать исправления ошибок независимы друг от друга, что позволяет большей гибкости по отношению к тому, что объединяется в мастер / багажник, а когда.

С другой стороны, если вы используете Subversion, филиалы дороже (с точки зрения создания и переключения / обновления) и слияние сложнее. Часто отношение затрат / выгодов новой ветви не достаточно высоки (особенно для небольших ошибок), чтобы сделать его стоящим.

0
ответ дан 3 December 2019 в 08:04
поделиться

Один Режим операций состоит в том, что развернутое программное обеспечение живет в отдельной отрасли, которая получает только исправления. Где вы на самом деле развиваете эти исправления, в основном неактуальны; Чтобы избежать вмешательства в текущее развитие, имеет смысл разрабатывать исправление на вершине «живой» филиала, затем проверьте / комбинируйте / развернутые в живую систему, и Aftewards объединяет фиксацию обратно в багажник.

2
ответ дан 3 December 2019 в 08:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: