В статье описан процесс быстрого старта для работы системой хранения версиями 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 (часто задаваемые вопросы). |