fossil или «"ископаемое" на ископаемом»
Jan. 26th, 2015 09:38 amВ поисках подходящей системы управления версиями пытаю фосил. Со всех сторон штука приятная, если не считать одного недостатка одной особенности: для того чтобы обеспечить синхронизацию необходимо на удалённом конце поднимать сервер (в роли которого выступает сам фосил) и этот сервер обеспечивает связь только с одним проектом. То есть один сервер - один репозитарий. Что-то здесь недоработано. А если на хосте у меня лежит несколько репозитариев? Пока прямой путь вижу только один - поднимать несколько серверов. Памяти он занимает не так много, но с другой стороны один сервер - один порт. Сколько репозитариев - столько портов. Пока не выяснил может ли он держать несколько репозитариев одним сервером и как это сделать. Ну а в идеале - прикрутит его к другому веб-серверу. К апачу или нгинксу. Это было бы вообще идеально. Тогда можно было бы разные репозитории держать на одном хосте, а разделять их путями.
Ну да ладно, не это забавно.
Есть у меня один старый хост на трастиксе 2.2. Система от 2001 года без глобальных обновлений и только ядро с родного 2.2.19 заменено на 2.4.18 (сборка 2002 года). Досталось это хозяйство мне давно, и когда попало мне в руки апгрейдить в русле последних изменений было уже поздно - репозитариев под именно этот дистирибутив уже не было. А хост довольно важный, с кучей используемых функций. Поэтому с нуля переставлять систему не решился: можно и старую систему положить и новую не поднять. Это сейчас я постепенно перетаскиваю функции на другой сервак и никто в шею ни гонит.
Так вот один из вопросов: "а не поднять ли и на нём СУВ/VCS?" Чего-нибудь "стандартного" в упаковке мне не досталось. Пытаться поставиь svn или git? А на кой морочиться, если от этого сервера в будущем я намерен отказаться? А вот фосил может быть интересен. Всего один исполняемый файл - и "всё в одном": собственно DVCS, а также база данных (sqlite3), баг-трекер, вики для описаний, коментов, редактор и веб-сервер. До сих пор на этом сервере "управление версиями" осуществлялось простым копированием каждой версии в специальное место. Но предыдущие версии ни разу и не понадобились. Они скорее были необходимы как некоторых бекап. Но это и нормально потому что я сам себе и архитектор, и кодер, и тестер.
В общем захотел попробовать фосил на этом своём ископаемом 2001/2002 года выпуска. :)
Бинарник (1.30 от 19.01.2015) не пошёл, что совсем не удивительно: "FATAL: kernel too old. Segmentation fault". ;) Взял сырец на сборку. Вывалилась одна странная ошибка по поводу неверного использования макроса BIO_get_conn_ip из openssl/bio.h: в коде фосила он однопараметровый, а в хеад-файле системы двухпараметровый. Хотя странно зачем, если второй параметр не используется.
openssl 0.9.6
openssl (точнее, libssl-dev) 1.0.1
Что напрашивается? Ну, конечно! Копирую дифайн в фосировский код. Собираю. Теперь уже вместо ошибки выскакивает все-го лишь предупреждение о дублировании макроса и сборка продолжается. Дальше по ходу, конечно, вываливается ещё пачка предупреждений по разным не сильно значимым поводам. В том числе что-там про отладочную информацию и что формат файла для таковой выбрат неудачно - маловат. Но в итоге фосил собрался.
Запускаю - работает!
Итого: "ископаемое" (в кавычках) от 2015 года заработало на ископаемом (без кавычек) от 2001 года. :)
Не знаю, правда, все ли функции работают, потому что запустить тест "ископаемого" не получилось. Для теста требуется tclsh, а вот у него на ископаемом появились разногласия с тестером "ископаемого" по поводу допустимости $tcl_platform(platform). Попробовал закоментить тот кусок, тем более что там проверка на винду была, так тестер "ископаемого" наткнулся на другую проблему...
В общем, итоге отказался от попыток заставить работать штатный тест. :)
Ну да ладно, не это забавно.
Есть у меня один старый хост на трастиксе 2.2. Система от 2001 года без глобальных обновлений и только ядро с родного 2.2.19 заменено на 2.4.18 (сборка 2002 года). Досталось это хозяйство мне давно, и когда попало мне в руки апгрейдить в русле последних изменений было уже поздно - репозитариев под именно этот дистирибутив уже не было. А хост довольно важный, с кучей используемых функций. Поэтому с нуля переставлять систему не решился: можно и старую систему положить и новую не поднять. Это сейчас я постепенно перетаскиваю функции на другой сервак и никто в шею ни гонит.
Так вот один из вопросов: "а не поднять ли и на нём СУВ/VCS?" Чего-нибудь "стандартного" в упаковке мне не досталось. Пытаться поставиь svn или git? А на кой морочиться, если от этого сервера в будущем я намерен отказаться? А вот фосил может быть интересен. Всего один исполняемый файл - и "всё в одном": собственно DVCS, а также база данных (sqlite3), баг-трекер, вики для описаний, коментов, редактор и веб-сервер. До сих пор на этом сервере "управление версиями" осуществлялось простым копированием каждой версии в специальное место. Но предыдущие версии ни разу и не понадобились. Они скорее были необходимы как некоторых бекап. Но это и нормально потому что я сам себе и архитектор, и кодер, и тестер.
В общем захотел попробовать фосил на этом своём ископаемом 2001/2002 года выпуска. :)
Бинарник (1.30 от 19.01.2015) не пошёл, что совсем не удивительно: "FATAL: kernel too old. Segmentation fault". ;) Взял сырец на сборку. Вывалилась одна странная ошибка по поводу неверного использования макроса BIO_get_conn_ip из openssl/bio.h: в коде фосила он однопараметровый, а в хеад-файле системы двухпараметровый. Хотя странно зачем, если второй параметр не используется.
openssl 0.9.6
#define BIO_get_conn_ip(b,ip) BIO_ptr_ctrl(b,BIO_C_SET_CONNECT,2)
openssl (точнее, libssl-dev) 1.0.1
#define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)
Что напрашивается? Ну, конечно! Копирую дифайн в фосировский код. Собираю. Теперь уже вместо ошибки выскакивает все-го лишь предупреждение о дублировании макроса и сборка продолжается. Дальше по ходу, конечно, вываливается ещё пачка предупреждений по разным не сильно значимым поводам. В том числе что-там про отладочную информацию и что формат файла для таковой выбрат неудачно - маловат. Но в итоге фосил собрался.
Запускаю - работает!
Итого: "ископаемое" (в кавычках) от 2015 года заработало на ископаемом (без кавычек) от 2001 года. :)
Не знаю, правда, все ли функции работают, потому что запустить тест "ископаемого" не получилось. Для теста требуется tclsh, а вот у него на ископаемом появились разногласия с тестером "ископаемого" по поводу допустимости $tcl_platform(platform). Попробовал закоментить тот кусок, тем более что там проверка на винду была, так тестер "ископаемого" наткнулся на другую проблему...
В общем, итоге отказался от попыток заставить работать штатный тест. :)