- Из локальных репозиториев, размещенных на ПК других пользователей, извлекаются и
переносятся сделанные ими изменения, которые синхронизируются с теми, которые внес
первый разработчик.
- Пользователь также может сам отдать внесенные им в программный код изменения другим
разработчикам.
Общий механизм работы Mercurial подразумевает, что любые изменения, внесенные в код,
даже
если они бесполезны, сохраняются как на локальном, так и на внешних репозиториях. Однако
разработчику действительно часто необходимо редактировать или удалять эти изменения.
Поэтому
в Mercurial реализовано локальное изменение истории, которое не затрагивает внешние
репозитории. Сделано это потому, что ревизии кода, сохраненные на них, могут
использоваться
в работе другими разработчиками, давать начало новым ветвям изменений. Чтобы
отслеживание
публичности и приватности изменений было удобным для пользователей, в Mercurial
задействована система фаз. Всего их три:
То есть, когда пользователь только создает набор изменений, они имеют статус Draft. Как
было сказано выше, в Mercurial предусмотрена как ручная, так и автоматическая публикация
ревизий во внешних репозиториях. Как только это происходит, изменения получают статус
Public и менять их уже нельзя. Если пользователь хочет в течение какого-то времени
локально работать с этими изменениями или иметь возможность вернуться к ним в будущем,
то ему нужно явно придать им статус Secret.