Система управления версиями Mercurial Печать
Добавил(а) microsin   

В статье описан процесс быстрого старта для работы системой хранения версиями Mercurial.

Система хранения проектов в репозитории Google поддерживает стандарт Mercurial (система управления версиями). Для закачки исходников из их репозитория под Windows можно применить клиент TortoiseHG.

[Установка TortoiseHG под Windows]

1. Скачиваем TortoiseHG (см. Ссылки [1], я скачал tortoisehg-1.1.9.1-hg-1.7.5-x86.msi, 22.7 мегабайта), устанавливаем. После установки в браузере Explorer появляется контекстное меню TortoiseHG, на диске появляется папка c:\Program Files\TortoiseHg\ с утилитами и документацией, а также теперь прямо из командной строки можно вызывать команду hg.

2. Чтобы сделать локальный клон проекта из репозитория Google Code, нужно знать его URL. Например, чтобы сделать клон проекта lightpack, у которого URL https://lightpack.googlecode.com/hg/, нужно выполнить простую команду:

hg clone https://lightpack.googlecode.com/hg/ lightpack

requesting all changes
adding changesets
adding manifests
adding file changes
added 275 changesets with 1248 changes to 471 files (+1 heads)
updating to branch default
260 files updated, 0 files merged, 0 files removed, 0 files unresolved

После выполнения команды в локальной папке (откуда запускалась команда) появится папка lightpack со всеми опубликованными документами и исходниками проекта lightpack.

[Основные методы работы с репозиториями Mercurial]

Предполагается, что система TortoiseHG у Вас уже установлена.

Как создать новый репозиторий для проекта с помощью командной строки.

1. Переходим в каталог проекта.
2. hg init
3. hg add
4. hg commit -q -m initial

Как создать новый репозиторий для проекта с помощью проводника Windows.

1. Щелкаем правой кнопкой на папке проекта, для которой хотим создать репозиторий, выбираем в контекстном меню TortoiseHg -> Create Repository Here, в появившемся окошке жмем кнопку Создать.
2. Щелкаем правой кнопкой на папке проекта, для которой хотим создать репозиторий, выбираем в контекстном меню Hg Commit..., запускается браузер кода (Фиксация/Commit).
3. Ставим галочку слева вверху, чтобы пометились все файлы кода.
4. Добавляем комментарий к репозиторию, например комментарий "This is my first repository...". Комментарий лучше добавлять на английском языке.
5. Жмем кнопку Фиксация (Commit), на запрос подтверждения (Добавить/Удалить указанные файлы) жмем "Да".

После создания репозитория в папке проекта появится отдельная папка с базой данных репозитория .hg, а также

Как создать точку фиксации (Commit) с помощью командной строки.

Точкой фиксации (Commit) - называется запоминание в репозитории каких-либо изменений в исходниках. Обычно это делается после того, как исправлен очередной баг, или в конце рабочего дня.

hg commit
hg commit -m 'мое первое изменение'

Чтобы зафиксировать только отдельные файлы, нужно их указывать отдельно, например hg commit файл1 файл2 ...

Как создать точку фиксации (Commit) с помощью проводника Windows.

1. Щелкаем правой кнопкой на папке проекта, для которой хотим создать репозиторий, выбираем в контекстном меню TortoiseHg -> Hg Commit...
2
. Откроется окно браузера репозитория Commit. В левой части окна будут помечены галочками файлы, которые будут участвовать в фиксации. лучше убрать галочки с временных файлов, с файлов листинга и с объектных файлов.
3
. Указываем комментарий к фиксации. Комментарий лучше добавлять на английском языке.
4
. Жмем кнопку Фиксация (Commit).

[Списки игнорируемых файлов]

Зачастую в каталогах проекта могут появляться какие-то файлы, которые нежелательно отдавать на попечение системы контроля версий. Например, к таким файлам могут относиться различные временные файлы, создаваемые текстовым редактором или компилятором. Такие файлы можно просто не включать в репозиторий, но при каждом выполнении команды hg status будет выводиться их список с пометкой "?". Чтобы избежать такого поведения, существует специальный список исключений - файлов, которые должны игнорироваться mercurial, хотя и могут находиться в каталоге рабочей копии. Такой файл носит имя .hgignore и должен располагаться в корневом каталоге репозитория (папки проекта). Формат файла следующий:

# comments
syntax: glob
*.o
*.lst
*.bak
*.tmp
syntax: regexp \.bak$ \.tmp$

Строки, начинающиеся со знака "#", являются комментариями. Строка, начинающаяся со слова "syntax:", означает указание на используемый далее в тексте тип описаний. Может принимать два различных значения: glob - в этом случае файлы для исключения описываются масками по аналогии с используемыми в операционных системах (символ '*' означает любое количество любых символов, символ '?' означает строго один любой символ); regexp - в этом случае для описаний используются регулярные выражения (формат которых аналогичен используемым в Perl).

Общепринятой практикой является создание файла .hgignore сразу же после создания репозитория и включение этого файла в самый первый набор изменений ("коммит").

Если неправильно задана установка syntax, то это может быть причиной появления ошибок типа ".hgignore: invalid pattern (relre)" в ответ на паттерны игнорирования, содержащие звездочку. Для таких паттернов обязательно используйте syntax: glob.

Для того, чтобы исключить добавление всей папки целиком, нужно указать только её имя. При этом будут исключены из добавления в репозиторий всё, что находится в этой папке - все файлы этой папки и все находящиеся в ней поддиректории. Примеры строк файла .hgignore с исключениями:

# В репозиторий не будет включена папка doc со всеми 
#  её файлами и подкаталогами.
doc
# Не будут добавлены все файлы с расширением *.bak, которые # находятся в корневом каталоге репозитория. При этом все файлы # *.bak, находящиеся в подкаталогах, все равно будут добавлены. *.bak
# Не будут добавлены в репозиторий все файлы в каталогах # Debug/List и Debug/Obj. Если в подкаталогах List и Obj есть # еще подкаталоги с файлами, то они будут добавлены. Debug/List/*.* Debug/Obj/*.*

1. Под Windows кириллица в комментариях к Commit поддерживается не очень хорошо. Например, если в GUI Вы зададите комментарий по-русски, то в консоли этот комментарий увидите кракозябрами. В новых версиях этот баг исправлен, однако лучше писать комментарии к коммиту на английском.

2. Для новичков, не боящихся английского, лучше переключить GUI-интерфейс на английскую версию - чтобы не путаться с терминологией в документации.

3. После первой установки TortoiseHG необходимый минимум настроек, которые нужно сделать, это указать имя пользователя, под которым будут создаваться и обновляться репозитории по умолчанию.

[Словарик]

Commit, точка фиксации запоминание в базе данных репозитория текущего состояния проекта.

SCM Software Configuration Management (управление конфигурациями программ).

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

[Ссылки]

1. TortoiseHG site:tortoisehg.bitbucket.org.
2. Mercurial Downloads site:mercurial.selenic.com - другие клиенты для репозитория Mercurial.
3. Что такое Mercurial site:ru.wikipedia.org.
4. Как скачать исходники с Google Code (code.google.com).
5. Mercurial FAQ site:mercurial.selenic.com (часто задаваемые вопросы).