Как подружились Mercurial, Windows и Debian.

Mercurial logo Эта история началась трагически. Я случайно стер исходники проекта, над которым работал несколько дней. Бекапов не делал, svn забросил (я работаю один, без команды), для версионности вполне обходился Local History в Eclipse/NetBeans. Но эта потеря заставила меня как следует задуматься о том, чтобы все-таки использовать VCS, хотя бы для бекапа. Основной выбор был между Git и Mercurial (о достоинствах и недостатках CVS/SVN и прочих ищите в поисковиках). За Mercurial для меня сыграло то, что на Bitbucket был бесплатно доступен один приватный репозиторий, в отличии от Github, где все публично. А у меня на некоторых сайтах пароли в коде зашиты.

Установка Mercurial на Windows делается элементарно: Next, Next, Next, Ok. Скачать можно, например, здесь. Можете так же скачать TortoiseHg, если вам нравится их TortoiseSVN. Под Linux еще проще.

apt-get install mercurial

Для Eclipse IDE поищите плагин Eclipse Mercurial, а в NetBeans поддержка встроенная. Возможно вам понадобится прописать в системную переменную PATH путь к тому месту, куда вы установили Mercurial.

И все, вы можете пользоваться Меркуриалом. Ему, в отличии от SVN совершенно не нужно поднимать сервер. Все ваши изменения будут хранится в папке .hg в корне проекта. В отличии от svn Mercurial, Git и другие современные системы не суют свои папки в каждую папку проекта.

Вкратце расскажу о том, как начать работу с этой системой. Если у вас проект лежит локально, то в папке проекта в консоли введите

hg init

Тем самым, вы инициируете проект в этой папке. Дальше, как в svn:

hg add; hg commit -m ‘Initial commit’;

Тем самым вы добавляете все файлы в текущей папке к проекту и сразу же коммитите с комментарием «Initial commit». Если же проект где-то выложен и вы хотите подключиться к нему, тогда клонируете его себе в пустую папку.

hg clone адрес репозитория

Я думаю, что как создать и закоммитить проект в IDE вы разберетесь.

Итак, бесплатные репозитории на BitBucket публичны (кроме всего одного приватного), а размер всего 150 мегабайт. Значит надо ставить свой «сервер». Здесь все оказалось довольно быстро и просто. Как установить Mercurial на Debian я уже выше написал. После чего создал нового пользователя mercurial с помощью adduser. Дал ему в распоряжение папку /home/mercurial, закачал на сервер коды проектов по папкам и инициировал в каждой проект Меркуриала. А потом просто в Windows сделал так:

hg pull ssh://mercurial@myserver/myproject hg update

Если у вас Винда ругается на отсутствие ssh смотрите здесь. Обьясню, что я сделал. Так как в Mercurial нет центрального сервера, то все репозитории равны. И вы всегда коммитите в свой локальный. А чтобы обменяться изменениями вы делаете pull (скачиваете) или push (закачиваете). Таким образом я скачал проект с сервера, чтобы удостоверится, что все работает. Надеюсь, что и у вас все получилось. А если нет — спрашивайте в комментариях.

Leave a Reply

Your email address will not be published. Required fields are marked *