Обновил Mercurial на сервере и дома.
Лол, во FreeBSD из /contrib не устанавливается hgwebdir.fcgi (почему?). Поправил Makefile в портах, получил желанное. А то поначалу ещё и куда-то делись все шаблоны.
Ещё пришлось прописать в hgweb.config в секцию [web] строчку
baseurl = /hg
Раньше без неё работало! :-P
Грепал Грека грепом репо,
Видит Грека — в репо баг,
Сунул Грека в репо руку —
Баг за руку Греку цап!
Mercurial — распределённая система контроля версий, написанная на Python. Работает очень шустро (быстрее, похоже, только git), имеет всё что нужно и проста в работе. В Emacs для работы с Mercurial можно использовать VC, там есть нужный backend.
Решил тут поставить Mercurial на сервер, прицепить веб-интерфейс к нему и сделать так, чтобы можно было отправлять коммиты прямо на сервак через SSH и HTTPS (удобно и надёжно).
Опишу весь процесс.
При установке использовалось следующее ПО (с другими версиями что-то может измениться):
FreeBSD 6.2-STABLE в качестве OS на сервере
Веб-сервер lighttpd 1.4.15 (на версиях ниже 1.4.12 скорее всего будут проблемы с SSL; 1.4.x вообще не сахар по сравнению с грядущей 1.5.x, далее по тексту будет хак, связанный с недостатками ветки 1.4.x)
Mercurial 0.9.4 (вышла на днях)
Сижу переписываю (sorta «рефакторенк») скрипт запуска FastCGI-сервера с Django во FreeBSD у себя на сервере, чтобы почище был. Отладил, всё как надо прописал. Старый процесс убил. Ввожу:
$ sudo ./django start
Запустилось. «Woohoo!».
«Загасим для опыта», — и ввожу:
$ sudo ./django stop
Пилик! В квартире погас свет!
Попытки вернуть его вводом ./django start и ./django forcestart не увенчались успехом — всё вокруг оставалось черно, как мак на бублике.
Через 10 минут свет вернули, есессно fsck при загрузке компьютера и ещё через пару минут всё гаснет снова. Потом вернули.
Бойтесь демонов.