Итак, продолжение (интро, она же первая часть тут) серии по совместному использованию РСКВ Mercurial и хостинга “кода” BitBucket. Кавычки использованы не случайно. Функциональность рассчитана на файлы абсолютно любого типа. К тому же, после недавнего изменения тарифных планов, на Bitbucket сняли ограничение на число репозиториев (приватных в том числе) и их размер. Ограничения тоже остались – 5 человек на доступ в бесплатном аккаунте. Но это вполне нормально, большая команда вполне способна оплатить и платный аккаунт, тем более расценки копеечные. А для одиночки и/или небольшой команды Bitbucket просто находка. Тот же github на бесплатном аккаунте не даёт приватные репозитории, а сохранить только для себя немного кода всё-таки бывает надо.
Итак начнём quickstart на примере хранения fb2-версий моих графоманских поделок:
0. Установка, собственно, меркуриала с http://mercurial.selenic.com
Это консольная утилита под все распространённые ОСи. Кстати, один из немногих представителей софта, где консольная версия удобнее GUI. Есть, конечно, всякие TortoiseHG и куча плагинов под разные IDE, но юзабилити там не к чёрту. My way для РСКВ это повесить на хоткеи нужные наборы консольных команд, вызываемых из Notepad++ или SublimeText.
1. Создание с нуля или клонирование существующего репозитория
Практика показала, что создание пустого репозитория сразу на Bitbucket и потом командой
hg clone http://bitbucket.org/saudade/texts texts
клонирование к себе на ПК проще, чем инициализация с помощью “hg init” и указывание разного барахла настроек в файле .hgrc. Итак, команда набирается в консоли: собственно hg clone, адрес удалённого репозитория (не обязательно bitbucket, конечно) и директория, где будет репозиторий. В указанной папке окажутся все файлы проекта. В данном случае два .fb2 и каталог .hg, котором меркуриал хранит всё, что ему надо для работоспособности репозитория.
2. Теперь начинается сама работа/программирование/etc. Стандартное добавление, изменение, удаление. Синтаксис вполне понятен:
hg add filename
hg remove filename
hg rename old_name new_name
3. Через какое-то время можно будет зафиксировать результаты в изменяемых файлах. (Исправили баг к софту, над которым работаете, дописали главу в вашей нетленке или просто закончили применять фильтры к редактируемому изображению). Это называется коммит. Синтаксис:
hg commit -m “What I`ve done”
Параметр “-m” указывает, что к коммитам пишутся комментарии. Их потом можно прочитать в changeset`ах. В них кратко или не очень можно объяснить, чего вы наворотили. Изменения запишутся в локальный репозиторий. Если передумали, можно откатиться на предыдущую ревизию (hg rollback)
4. Теперь можно “запушить” изменения в удалённый репозиторий (тот самый много раз упоминающийся bitbucket):
hg push http://bitbucket.org/saudade/texts
или
hg push http://User:Pass@bitbucket.org/saudade/texts
В первом случае при каждом пуше надо набирать логин и пароль от аккаунта bitbucket (среди всего прочего, на bitbucket есть и поддержка openID), во втором – нет. Один раз настроенная команда just works.
Также, несмотря на дисклеймер к прошлому посту, для Notepad++, в ST2, в bat-файл или куда удобней можно повесить такое:
cd texts
hg commit -m “What I`ve done”
hg push http://User:Pass@bitbucket.org/saudade/texts
Это коммит и сразу пуш в один клик.
Несколько общих слов для чего вообще заморачиваться с РСКВ, а не просто тупо кидать файлы в dropbox:
- Backup всегда приятен. “А-а-а! Комп взорвался. Ну и что? Одной командой clone я получаю всё, что долгие месяцы/годы складывал в РСКВ”
- Этой же командой clone можно быстро сделать “песочницу” (просто тупо ещё один реп рядом). Что-то проверить и склеить с основным.
- Этой же командой clone, а в последствии
cd texts
hg pull http://bitbucket.org/saudade/texts
hg update
люди могут быстро получать все нужные файлы или апдейты, без всякого “ты вот по этой ссылке возьми кусочек, потом вот тут посмотри и вот отсюда ещё загрузи”.
- Версионность и хистори. “Я написал что-то там полгода назад. А потом стёр/заменил. Откачусь-ка к тем изменениям.”
- Sharing всякого стаффа. “Посмотри вот тут и скажи что-нибудь”.
- Ну и классические принципы использования РСКВ – merge и т.п.
P.S. Практика показала, что для нетрушных ОСей, таких как windows, лучше воздержаться от создания репозитория на диске D, лучше C, ибо CMD не особо любит команду “cd d:/”. Конечно, через тот же Notepad++ можно провести команды для коммитов и пушей, да и “hg clone” проходит даже через саму CMD, но… P.S. на то и P.S.
[...] что такое коммиты и пуши, да и quickstart mercurual + bitbucket – следующим [...]