вторник, 5 октября 2010 г.

Mercurial on Windows Server

Последнее время я увлекся системой децентрализованного контроля версии Mercurial. Нравится мне эта штука прежде всего своей легкостью и ненавязчивостью.
В начале я использовал его для индивидуальных проектов для возможности иметь историю изменении и возможность ветвления.
Для такого использования надо, всего лишь, поставить вот это

После чего в любом каталоге будет достаточно набрать:

hg init
hg add
hg commit -m "first"

и все файлы будут зачекинены в репозитории.

Если есть желание использовать репозитории удаленно, то это тоже достаточно не сложно.
Я буду рассматривать вариант поднятия сервера под Windows.

Предположим мы хотим сделать 2 репозитория в одном каталоге сервера:

D:\REPOS\
D:\REPOS\firstproject
D:\REPOS\secondproject


Для этого в каталог D:\REPOS\ кладем вот такой конфиг web_dir.config:

[paths]
firstproject = D:/REPOS/firstproject
secondproject = D:/REPOS/secondproject

[web]
allow_push = *
push_ssl = false
contact = Bilbo Baggins
description = fixes
allow_archive = zip


После этого в каталоге D:\REPOS\ выполняем командочку

hg serve --webdir-conf web_dir.config


Не очень очевидно то что после запуска вы ничего на консоли не увидите и управление вам не вернется. :)

Попробуите заити по адресу http://localhost:8080 ,должны увидеть простой веб интерфейс с двумя проектами.

Остальные параметры значат следующее
  • allow_push - * - разрешает пушить в репозитории всем
  • push_ssl = false - разрешает пушить по http (по умолчанию только ssl)
  • contact = Bilbo Baggins - имя того кто отвечает за проект (для каждого проекта можно переопределить в .hg\hgrc для конкретного репозитория )
  • description = fixes - описание проекта
  • allow_archive = zip - добавляет ссылочку для скачивания последней версии в архиве

Пользоваться этим просто. На клиентской машине так же ставим mercurial и даем команду:

hg clone http://myserver/firstproject


Теперь у нас есть своя копия репозитория локально и можно с ней работать, после того как сделали изменения и их зачекинили (hg commit) ,можно их вернуть обратно на сервер командой hg push или взять свежее с сервера командой hg pull

При этом в веб интерфеисе можно легко смотреть изменения , коменттарии и прочее.

Вообщем все очень просто и удобно.

Для более подробного понимания всех команд hg RTFM User Guide

Комментариев нет: