Глоссарий

Предок
Любой набор изменений, до которого можно пройти по непрерывной цепочке родительских наборов изменений от данного набора. Более точно, предок набора изменений определяется двумя свойствами: родитель набора изменений является предком, и родитель предка также является предком. См. также: 'Потомок'.
Закладка (Bookmark)
Закладки - это указатели на некоторую фиксацию, которые перемещаются при фиксации. Они похожи на метки тем, что их можно использовать вместо ID (хэшей) наборов изменений, например, в 'hg update'. Но, в отличие от меток, закладки перемещаются вслед за фиксациями.

Закладки можно переименовывать, копировать и удалять. Закладки по умолчанию локальны, до тех пор пока они явно не передаются с помощью push или pull между хранилищами. Передача закладок позволяет вам совместно работать над ветками, не создавая именованную ветку.

Ветка (Branch)
Дочерний набор изменений, родительский набор которого не является головной ревизией. Иногда называются также топологическими ветками (см. 'Ветка, топологическая'). Если для топологической ветки задается имя, она становится именованной веткой. Если топологическая ветка не имеет имени, она становится анонимной веткой. См. 'Ветка, анонимная' и 'Ветка, именованная'.

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

Example: "The experimental branch."

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

Example: "I'm going to branch at X."

Ветка, анонимная
Каждый раз, когда новый набор изменений создается от родителя, не являющегося головной ревизией, и при этом имя ветки не меняется, создаётся новая анонимная ветка.
Ветка, закрытая
Именованная ветка, на которой все головные ревизии закрыты.
Ветка, по умолчанию
Ветка, привязанная к набору изменений, до того, как было явно задано какое-либо имя ветки.
Голова ветки
См. 'Голова, ветки'.
Ветка, неактивная
Если именованная ветка не имеет топологических головных ревизий, она считается неактивной. Например, ветка для новой функции станет неактивной, когда она будет слита в ветку по умолчанию (default). Команда ''hg branches' по умолчанию показывает неактивные ветки, их можно скрыть с помощью 'hg branches --active'.

ПРИМЕЧАНИЕ: такое поведение устарело и больше не используется, потому что оно слишком неочевидно и может вызывать путаницу. Теперь не нужные более ветки необходимо явно закрывать с помощью 'hg commit --close-branch'

Ветка, именованная
Несколько наборов изменений, имеющих одно и то же имя ветки. По умолчанию дочерние ревизии набора изменений на некоторой именованной ветке принадлежат той же ветке. Дочерний набор изменений может быть явно привязан к другой ветке. Подробнее об управлении ветками см. 'hg help branch', 'hg help branches' и 'hg commit --close-branch'

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

Оконечная ревизия (tip) ветки
См. 'Оконечная ревизия (tip), ветка'.
Ветка, топологическая
Каждый раз, когда дочерняя ревизия отщепляется от родительской, которая не является головной ревизий, создается топологическая ветка. Если ей присваивается имя, она становится именованной веткой. Если для топологической ветки не задается имя, она становится анонимной веткой текущей ветки - возможно, ветки по умолчанию (default).
Журнал изменений (Changelog)
Запись наборов изменений в порядке их добавления в хранилище. Она включает информацию об ID (хэше) ревизии, авторе, сообщение фиксации, дату и список измененных файлов.
Набор изменений (changeset)
Снимок состояния хранилища, используемый для записи изменения.
Набор изменений (ревизия), дочерний
Противоположность родительского набора изменений: если Р - родительский набор изменений Д, то Д - дочерний набор изменений Р. Набор изменений может иметь неограниченное количество дочерних наборов изменений.
Идентификатор (ID) набора изменений
Хэш SHA-1, однозначно идентифицирующий набор изменений. Может быть представлен как "длинная" (40 шестнадцатеричных символов) или "короткая" (12 шестнадцатеричных символов) строка.
Набор изменений слияния
Набор изменений с двумя предками. Создается когда фиксируется результат слияния.
Набор изменений, родительский
Ревизия, на основе которой создана дочерняя ревизия. Точнее, родительский набор изменений набора Д - это набор изменений, непосредственно предшествующий набору Д на графе. Набор изменений может иметь не более двух родителей.
Извлечение, извлечь (checkout)
(Сущ.) Рабочий каталог, обновленный до определенной ревизии. Не стоит использовать это понятие, поскольку набор изменений или ревизия являются более подходящими терминами в таком контексте.

Пример: "Я использую извлечение Х."

(Гл.) Обновить рабочий каталог до определенной ревизии. См. 'hg help update'.

Пример: "Я собираюсь извлечь ревизию Х."

Дочерний набор изменений (ревизия)
См. 'Набор изменений, дочерний'.
Close changeset
See 'Head, closed branch'.
Закрытая ветка
Cм. 'Ветка, закрытая'.
Клон
Полная или частичная копия хранилища. Частичный клон должен быть в форме ревизии с ее предками.

Example: "Is your clone up to date?"

Клонирование
Процесс создания клона с использованием 'hg clone'.

Example: "I'm going to clone the repository."

Закрытая голова ветки
См. 'Головная ревизия, закрытая ветка'.
Фиксация
(Сущ.) Синоним набора изменений.

Пример: "Исправлена ли эта ошибка в твоей последней фиксации?"

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

Пример: "Тебе стоит зафиксировать эти изменения прямо сейчас."

Cset
Сокр. от changeset (набор изменений).
НАГ (DAG, граф)
Хранилище с наборами изменений распределенной системы контроля версий (DVCS) может быть представлен как направленный ациклический граф (НАГ, англ. DAG), состоящий из узлов и ребер, где узлы являются наборами изменений, а ребра отражают отражают отношение родительская- дочерняя ревизия. Этот граф можно визуализировать с помощью графических инструментов вроде 'hg glog' (graphlog). В Mercurial граф ограничен требованием существования не более двух родителей для узла.
Deprecated
Feature removed from documentation, but not scheduled for removal.
Ветка по умолчанию (default)
См. 'Ветка, по умолчанию'.
Потомок
Любая ревизия, до которой можно добраться по цепочке дочерних ревизий от данной ревизии. Точнее, потомки ревизий могут быть описаны двумя свойствами: дочерняя ревизия некой ревизии является ее потомком и дочерняя ревизия потомка некой ревизии также является потомком этой ревизии.
Различия, файл различий (diff)
Отличия содержимого и атрибутов файлов между двумя ревизиями или между некоей ревизией и текущим рабочим каталогом. Отличия обычно представлены в стандартной форме, называемой "диффом" или "патчем". Формат различий git используется, если изменения должны включать копирования, переименования или изменения атрибутов файлов, которые не могут быть представлены или обработаны классическими инструментами "diff" и "patch".

Пример: "Я прислал тебе файл различий с моими исправлениями."

(в англ) Diff (гл.) - процесс создания диффов или патчей. По-русски так не говорят.

Пример: "If you diff with changeset X, you will see what I mean."

Каталог, рабочий
Рабочий каталог отражает состояние файлов, контролируемых Mercurial, которое будет закреплено при следующей фиксации. Рабочий каталог изначально соответствует снимку существующей ревизии, называемой родителем рабочего каталога. См. 'Родитель, рабочий каталог'. Состояние может быть изменено за счет ручной правки файлов или слияния. Метаданные хранилища находятся в каталоге .hg в рабочем каталоге.
Черновик
Наборы изменений в черновой фазе еще не были опубликованы в общедоступных хранилищах, поэтому они могут безопасно модифицироваться расширениями, изменяющими историю. См. 'hg help phases'.
Experimental
Feature that may change or be removed at a later date.
Граф
См. НАГ и 'hg log --graph'.
Голова (головная ревизия)
Термин 'голова', может быть использован для обозначения головной ревизии как ветки, так и хранилища, в зависимости от контекста. См. 'Голова, хранилище' и 'Голова, ветка'.

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

Голова, ветки
Набор изменений, не имеющий потомков на той же именованной ветке
Голова, закрытая ветка
Набор изменений, который помечает голову как более не интересную. Закрытая ветка не отображается 'hg heads'. Ветка считается закрытой, если закрыты все ее головы, и соответственно она не отображается в выводе 'hg branches'.

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

Голова, хранилище
Топологическая не закрытая головная ревизия.
Голова, топологическая
Ревизия, не имеющая потомков в хранилище.
История, неизменная
Зафиксированный однажды набор изменений не может быть изменен. Расширения, которые изменяют историю, на самом деле создают новые наборы изменений, которые заменяют уже существующие, после чего удаляют старые наборы изменений. Такие действия в публичном хранилище могут быть причиной ситуации, когда старые наборы изменений будут добавлены повторно.
История, изменение
Наборы изменений в хранилище неизменны. Однако, расширения Mercurial могут быть использованы для изменения самого хранилища, как таким образом, чтобы сохранить содержимое наборов изменений.
Неизменная история
См. 'История, неизменная'.
Ревизия слияния
См. Набор изменений слияния
Манифест
Каждый набор изменений имеет манифест, который является списком файлов, которые контролируются в этом наборе изменений.
Слияние
Используется для объединения расходящихся веток разработки. Когда вы обновляетесь на некоторую ревизию и потом сливаете ее в другую ревизию, вы добавляете историю последней в ваш рабочий каталог. После разрешения конфликтов (и пометки файлов как разрешенных), это слияние будет зафиксировано как ревизия слияния, объединяя две ветки на графе ревизий.
Именованная ветка
См. 'Ветка, именованная'.
Пустая (Null) ревизия
Пустой набор изменений. Это родительская ревизия только что инициализированного хранилища и хранилища, для которого не извлечен рабочий каталог. Таким образом, она является родителем корневой (root) ревизии и фактическим предком при слиянии несвязанных наборов изменений. Может быть задана псевдонимом 'null' или ревизией с ID '000000000000'.
Родитель
См. 'Набор изменений, родительский'.
Родительский набор изменений
См. 'Набор изменений, родительский'.
Родитель, рабочего каталога
Родительская ревизия рабочего каталога отражает виртуальную ревизию, являющуюся дочерней ревизией показываемых 'hg parents' наборов изменений. Меняется с помощью 'hg update'. Также можно узнать родителя рабочего каталога с помощью 'hg summary' и 'hg id'. Может задаваться псевдонимом ".".
Патч
Результат операции diff.

Пример: "Я отправил тебе мой патч."

Патчить - применять файл патча чтобы преобразовать один набор изменений в другой.

Пример: "Тебе придется пропатчить эту ревизию."

Фаза
Механизм отслежвания индивидуального состояния набора изменений, определющий, был ли он опубликован или должен быть опубликованным. См. 'hg help phases'.
Публичный
Наборы изменений в публичной фазе были опубликованы в общедоступных хранилищах, поэтому они считаются неизменяемыми. См. 'hg help phases'.
Затянуть (Pull)
Операция, при которой наборы изменений из отдалённого хранилища, отсутствующие в локальном, передаются в локальное хранилище. Обратите внимание, что эта операция без дополнительных аргументов обновляет только хранилище, но не рабочий каталог. См. 'hg help pull'.
Протолкнуть (Push)
Операция, при которой наборы изменения из локального хранилища, отсутствующие в отдалённом, пересылаются в отдалённое хранилище. Обратите внимание, что это передает только наборы изменений, которые были зафиксированы в локальное хранилище. Незафиксированные изменения не пересылаются. См. 'hg help push'.
Хранилище
Метаданные, описывающие все зафиксированные состояния набора файлов. Каждое зафиксированное состояние представлено набором изменений. Хранилище как правило (но не всегда) находится в подкаталоге ".hg" рабочего каталога. Каждое зафиксированное состояние может быть воссоздано "обновлением" рабочего каталога до желаемого набора изменений.
Хранилища, голова
См. 'Голова, хранилище'.
Ревизия
Состояние хранилища на некоторый момент времени. Более ранние ревизии могут быть получены с помощью 'hg update'. См. также 'Номер ревизии' и 'Набор изменений'.

ПРИМЕЧАНИЕ: в русском переводе термин "ревизия" часто используется как синоним набора изменений. Хотя это технически не совсем некорректно, но короче и понятнее.

Номер ревизии
Это целое число однозначно определяет набор изменений в отдельно взятом хранилище. Оно отражает порядок, в котором наборы изменений были добавлены в хранилище, начиная с ревизии с номером 0. Очень важно понимать, что номера ревизий могут различаться в каждом клоне хранилища. Чтобы однозначно задать ревизию среди всех клонов, см. 'Идентификатор (ID) набора изменений'.
Revlog (ревлог)
Механизм хранения истории, используемый Mercurial. Является разновидностью кодирования дельт (отличий), с иногда встречающимися полными ревизиями с дельтами для каждой следующей ревизии. Включает данные и индекс с указателями на данные.
Изменение истории
См. 'История, изменение'.
Корень (корневая ревизия)
Набор изменений, у которого единственный предок - null. Большинство хранилищ имеют только один корень.
Секретный
Набор изменений в секретной фазе не может быть передан с помощью команд push, pull или clone. См. 'hg help phases'.
Метка
Альтернативное имя, присвоенное набору изменений. Метки могут быть использованы там, где Mercurial ожидает ID наборов изменений, например, в 'hg update'. Создание метки фиксируется в истории, поэтому метки будет автоматически доступны другим при использовании pull или push.
Оконечная ревизия (tip)
Набор изменений с максимальным номером ревизии. Это набор изменений, добавленный в хранилище последним.
Оконечная ревизия (tip) ветки
Голова данной ветки с максимальным номером ревизии. Когда имя ветки используется в качестве идентификатора ревизии, оно ссылается на оконечную ревизию ветки. См. также 'Голова ветки'. Обратите внимание, что поскольку номера ревизий могут различаться в разных клонах хранилищ, tip может быть различным в разных клонах.
Обновление
(Сущ.) Синоним набора изменений.

Example: "I've pushed an update."

(Гл.) Этот термин обычно используется чтобы описать обновление рабочего каталога до некоторой ревизии. См. 'hg help update'.

Example: "You should update."

Рабочий каталог
См. 'Каталог, рабочий'.
Рабочий каталог, родитель
См. 'Родитель, рабочего каталога'.