Jump to content

Ветвление (контроль версий)

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

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

Дочерние ветки — это ветки, у которых есть родительский элемент; ветвь без родительского элемента называется магистральной или основной линией . [1] Ствол также иногда условно называют HEAD, но на самом деле заголовок относится не к ветке, а к самому последнему коммиту в данной ветке, и как ствол, так и каждая именованная ветвь имеют свою собственную голову. Обычно ствол считается основой проекта, на котором ведется разработка. Если разработчики работают исключительно над стволом, он всегда содержит самую последнюю передовую версию проекта, но поэтому может быть и самой нестабильной версией. Другой подход — отделить ветку от магистрали, внести изменения в эту ветку и объединить изменения обратно в магистраль, когда ветвь окажется стабильной и работоспособной. В зависимости от режима разработки и политики фиксации ствол может содержать наиболее стабильную, наименее стабильную или что-то промежуточную версию. Другие термины для магистральной линии включают базовую линию, основную линию и главную линию, хотя в некоторых случаях они используются в схожем, но разном смысле – см. раздел «Контроль версий» § Общая терминология . Часто основная работа разработчиков происходит в стволе, а стабильные версии разветвляются, а случайные исправления ошибок переносятся из веток в ствол. Когда разработка будущих версий выполняется в немагистральных ветвях, это обычно делается для проектов, которые не меняются часто или где ожидается, что разработка изменения займет много времени, прежде чем оно будет готово для включения в магистраль.

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

Мотивы ветвления

[ редактировать ]

Филиалы позволяют параллельно разрабатывать части программного обеспечения. [2] Крупные проекты требуют заполнения многих ролей, включая разработчиков, менеджеров по сборке и по обеспечению качества персонал . Кроме того, может потребоваться поддержка нескольких выпусков для разных платформ операционных систем. Ветки позволяют участникам изолировать изменения, не дестабилизируя кодовую базу, например, исправления ошибок, новые функции , [3] и версий интеграция . Эти изменения могут быть позже объединены (повторно синхронизированы) после тестирования.

Отделение развития

[ редактировать ]

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

Часто ветка разработки является стволом . Некоторые системы контроля версий имеют специальный жаргон для основной ветки разработки. Например, в CVS она называется «MAIN». Git по умолчанию использует «master», хотя GitHub [4] [5] и GitLab перешёл на «основной» после убийства Джорджа Флойда .

Теневые или волшебные ветки

[ редактировать ]

В CVSNT теневая . или магическая ветвь «затеняет» изменения, внесенные в вышестоящую ветвь, чтобы облегчить поддержку небольших изменений (cvc — это система сборки пакетов с открытым исходным кодом) [ нужна ссылка ] включение системы контроля версий для пакетов, созданных rPath .)

Распределенный контроль версий

[ редактировать ]

Репозиторий клонов

[ редактировать ]

При распределенном контроле версий весь репозиторий с ветвями можно скопировать и работать над ним дальше. Monotone (mtn), Mercurial (hg) и git называют это «клоном»; Базар называет это «филиалом». [ нужна ссылка ]

В некоторых распределенных системах контроля версий , таких как Darcs , не проводится различие между репозиториями и ветвями; в этих системах получение копии репозитория эквивалентно ветвлению.

См. также

[ редактировать ]
  1. ^ Берчук, Стив; Эпплтон, Брэд (2003). Шаблоны управления конфигурацией программного обеспечения: эффективная командная работа, практическая интеграция . Аддисон-Уэсли . ISBN  0-20174117-2 . Проверено 24 мая 2007 г.
  2. ^ Эпплтон, Брэд; Берчук, Стивен; Кабрера, Ральф; Оренштейн, Роберт (08 февраля 1998 г.). «Потоковые линии: шаблоны ветвления для параллельной разработки программного обеспечения» ( PDF ) . Склон холма . Проверено 12 августа 2009 г.
  3. ^ Бейли, Дерик (15 июля 2009 г.). «Часть 1: Почему» . Управление версиями для каждой функции . Лос-техники . Проверено 12 августа 2009 г.
  4. ^ Уоллен, Джек (22 сентября 2020 г.). «GitHub заменит master на main начиная с октября: что разработчикам нужно делать сейчас» . Техреспублика . Проверено 24 апреля 2022 г.
  5. ^ Хайнце, Кэролин (24 ноября 2020 г.). «Почему GitHub переименовал свою главную ветку в основную» . Серверная сторона . Проверено 24 апреля 2022 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 258052b9eb860fbf28fc1dd9df92db47__1719247920
URL1:https://arc.ask3.ru/arc/aa/25/47/258052b9eb860fbf28fc1dd9df92db47.html
Заголовок, (Title) документа по адресу, URL1:
Branching (version control) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)