Intereting Posts
Как показать только имена файлов commiter с git log Добавить все неверсированные файлы в SVN Внедрение GIT для разработчиков Duel Developer – сетевые среды Dev Как автоматически выбрать новые добавленные файлы при совершении через tortoiseSVN? управление версиями темы WordPress, работающей на трех разных сайтах Изменения в перестановке, когда приостановлена ​​причина других коммитов Bazaar VCS для Windows Shared Hosting Git нажатие на удаленный репозиторий GitHub как неправильный пользователь Перемещение репозитомы из git в github на другое имя пользователя Как удалить файл, отслеживаемый git-lfs, и освободить квоту хранилища? Subversion / Maven изменяет моментальный снимок с момента последнего выпуска Системы управления источниками, допускающие частичное разветвление Изменения пользователей SVN diff Лучшие практики Git Workflow Удаленная команда Git возвращает фатальный: Invalid refspec + refs / heads / *: refs / remotes /: origin / *

Что нужно делать в ветке «default» в хранилище Hg?

В крупных проектах программного обеспечения Libre Source, с версией Mercurial или аналогичными инструментами DVCS, которые из следующего считаются более условными:

  1. Сохранение последней «стабильной» версии программного обеспечения в ветке по default . Пометка каждой версии по default чтобы вы знали, какая версия была упакована в качестве загрузки. Слияние патчей по default как только они будут протестированы. Сохранение новых функций и т. Д. В названных ветвях, которые будут объединены в default в следующей версии.
  2. Сохранение каждой версии в названной ветке или аналогичной. Использование по default для сохранения кратковременного кода, предназначенного только для разработчиков или самого безрассудного.

Или … есть ли какая-то лучшая модель рабочего процесса, которую он широко принял?

Solutions Collecting From Web of "Что нужно делать в ветке «default» в хранилище Hg?"

Mercurial имеет довольно сильное мнение о том, что вы должны использовать для своей ветви по default . Он задокументирован на странице Wiki стандартной ветви . Резюме:

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

    Причина в том, что по default это ветка, которая проверяется новыми клонами. Если вы попытаетесь использовать какое-то другое имя для своей «основной» ветки, пользователи получат более или менее случайную ветвь, когда они будут клонировать и совершать вещи в неправильном месте, что обычно нежелательно.

    Даже с тоннами документации, которая говорит «ветвь перед добавлением новой функции» (см. Следующий пункт), люди забудут об этом, когда отправят вам патчи. У них тогда есть проблемы с очисткой вещей, перемещая набор изменений вокруг.

    Поэтому всегда ставьте код default ветку по default и используйте другие ветви для ваших стабильных выпусков.

  • Не обрабатывайте имена филиалов как одноразовые

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

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

    У нас есть кэши внутри внутри Mercurial, поэтому проблемы в основном проблемы с пользовательским интерфейсом: хостинг сайтов и просмотрщики журналов могут запускать hg branches для загрузки всех 10 000 филиалов в одно раскрывающееся меню. Это очень медленно и бесполезно для бедных пользователей, которые хотят выбрать одну ветку из гигантского меню.

    Если ветви закрыты, то они не появятся в hg branches , и поэтому проблема должна быть минимизирована. Тем не менее, инструменты, возможно, захотят также показать закрытые ветви – все зависит от инструмента.

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

Я привык, если использую дефолт в Mercurial и мастер в Git для реальной работы, края кровотечения и использование тегов и ветвей для релизов. hgsubversion и Git-Svn, похоже, придерживаются этой веры.

Не существует, как правило, таких вещей, как « самые обычные» – каждый рабочий процесс является вопросом местной конвенции и политики развития в команде.

Я часто видел обе упомянутую политику, а также промежуточные вариации.

В случае сильной проверки | политики выпуска и интенсивно используемых филиалов («филиал на одну задачу») «дефолтная» ветвь часто существует только как ветвь слияния (слияние с ветвями объектов перед QA-тестированием) и означает «код, который работает с готовые функции, без ошибок, но с неработающей функциональностью ».

Незначительные версии формируют названные ветви, каждый релиз в такой ветке – это тег. Разъемы Bugfix объединены после завершения в ветви «по умолчанию» и активные версии

Но этот рабочий процесс – еще один пример , а не хуже, чем другие, подходящие для команд среднего размера с установленным разделением ответственности, не очень хорошо работают в развитии хаотической анархии

Там нет огромной суммы. Если мы говорим только о ветвях DEV & STABLE, которые по умолчанию в основном представляют собой соглашение об именах. Я бы предпочел иметь DEV по умолчанию, потому что большая часть работы происходит в ветви dev, и если это ветка по умолчанию, она меньше, чем hassel.

Лично я предпочитаю именованный филиал на выпуск. Исправления могут быть продолжены в этих ветвях и переносятся по очереди с относительной легкостью для всех выпусков после использования hg merge . Если вы попытаетесь сделать то же самое с DEV и STABLE, у вас может быть только один поддерживаемый выпуск (последний), или ваша стабильная ветка начнет расти, и вы получите (возможно, менее организованную) версию ветки на выпуск состав.