Ветка

  1. 1. Создание ветки
  2. 1.1. Единый репозиторий
  3. 1.2. Два хранилища
  4. 2. Именованные ветви
  5. 3. Атрибут Changeset
  6. 4. Смотрите также

HG филиал

HG филиалы

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

Ветви возникают, если линии развития расходятся. Таким образом, термин «ветвь» может относиться к «разветвленной линии развития». Для Mercurial «линия развития» представляет собой линейную последовательность последовательных Изменения ,

Объединение линии развития в существующую называется объединение ,

1. Создание ветки

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

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

1.1. Единый репозиторий

Строго говоря, ветвь создается, когда пользователь создает новый набор изменений C2 в репозитории R0, если его родительский набор изменений P уже имеет дочерний C1, таким образом добавляя второй дочерний набор изменений C2 к этому родительскому P. Это добавляет новый заголовок к R0 ,

1.2. Два хранилища

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

Таким образом, каждая ревизия в Mercurial формирует элемент ветви. Таким образом, можно сказать, что набор изменений «принадлежит ветви». Согласно этому определению, ветвь - это просто линейная последовательность наборов изменений.

2. Именованные ветви

Mercurial поддерживает присвоение имен веткам, используя свойство имени ветви набора изменений (см. NamedBranches ). Если имя ветви не было задано, Mercurial назначит имя ветви по умолчанию. Таким образом, имя ветви по умолчанию в хранилище - «default» (которое, например, не отображается при ведении журнала hg).

Команда hg ветки перечисляет все имена веток, существующие в репозитории:

> hg help ветки hg ветки [-a] список хранилищ с именами ветвей Вывод именованных веток хранилища с указанием, какие из них неактивны. Если указан активный, показывать только активные ветки. Ветвь считается активной, если она содержит неразбитые головы. options: -a - active показывать только ветки, у которых есть заголовки без заголовка, используйте «hg -v help ветки», чтобы показать глобальные опции

Команда hg branch может использоваться для установки имени ветки, которое будет использоваться для последующих коммитов:

> hg help ветка hg ветка [-f] [ИМЯ] установить или показать текущее имя ветки Без аргумента показать текущее имя ветки. С одним аргументом задайте имя ветви рабочего каталога (ветвь не существует в репозитории до следующей фиксации). Если не указан параметр --force, ветвь не позволит вам установить имя ветки, которая затеняет существующую ветку. options: -f --force установить имя ветки, даже если она затеняет существующую ветку, используйте «hg -v help branch», чтобы показать глобальные опции

Имена веток Mercurial могут использоваться по любым причинам, которые хотят пользователи. Тем не менее, хорошее правило - использовать имена ветвей экономно и для довольно долгоживущих концепций, таких как «ветки релиза» (rel-1, rel-2 и т. Д.), А не для недолгой работы отдельных разработчиков.

Некоторые пользователи Mercurial вообще не используют имена филиалов. И действительно, нет необходимости присваивать имена веток в Mercurial. Некоторые пользователи находят их полезными, некоторые нет. Установите и примените ваш местный консенсус.

3. Атрибут Changeset

(из проводка Яо Чжан на список рассылки Mercurial )

Между понятием «расходящаяся линия развития» и названием «ветвь» Mercurial существует тонкая разница.

Имя ветки Mercurial - это атрибут, связанный с набором изменений. Новое имя ветки может быть начато в середине линии разработки, не обязательно в расходящейся точке. Например:

hg branch-1 # начало нового имени ветви # изменение чего-либо в репозитории hg commit -m "branch-1" # у набора изменений есть имя ветви "branch-1" hg branch-2 # начало другого имени ветви # изменение чего-либо в репозитории hg commit -m "branch-2" # у ревизии есть имя ветки "branch-2"

Хотя выше нет «расходящейся линии разработки», название ветви Mercurial можно изменить.

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

4. Смотрите также

5. Внешние ссылки

CategoryCommand CategoryGlossary

Français

Похожие

Экран LG X в тесте: со вторым лучше видно
Экран LG X показывает себя благодаря дополнительному дисплею и камере в тесте как привлекательный смартфон среднего класса. Тем не менее, тонкое устройство также имеет слабость, которая не позволяет конкурировать. Визуально экран X довольно сильно отличается от предыдущих смартфонов LG и напоминает многие изгибы, заднюю часть стекла и слегка выпуклую камеру, в отличие от нынешних моделей Samsung. Где на
Sony Xperia Z Ultra в тесте: мини-планшет с функцией телефонии
... также реагирует на ввод с помощью карандаша или ручки. Является ли Xperia Z Ultra конкурентом Galaxy Note 3? Тест networld дает ответ. Sony Xperia Z Ultra не только больше, чем другие смартфоны, но и обладает специальной функцией: если у пользователя нет под рукой блока, он может просто использовать карандаши или ручки, чтобы писать наброски и заметки на экране Xperia Z Ultra. Sony теперь конкурирует с Samsung Galaxy Note 3? Тест networld дает ответ.
Является ли Xperia Z Ultra конкурентом Galaxy Note 3?
Sony теперь конкурирует с Samsung Galaxy Note 3?