Выпуск распределённой системы управления версиями Mercurial 3.0

Представлен релиз распределённой системы управления версиями Mercurial 3.0. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить OpenSolaris, NetBeans, OpenJDK, ALSA, Mozilla, Nginx, Xine, Dovecot, NTFS-3G, Python, Vim и W3C. Выпуск 3.0 не сигнализирует о появлении кардинальных изменений или новшеств, он лишь является следствием смены первой цифры в рамках используемой проектом десятичной схемы нумерации, в соответствии с которой после 2.9 следует версия 3.0, а не 2.10. Из новшеств можно отметить:

Новая команда «hg config», которая выводит имена и значения всех переменных конфигурации, а при указании опции »--edit» позволяет изменять их значения. Опция »--local» указывает на конфигурацию репозитория, а »--global» на системную конфигурацию. Запоминание статуса HTTP-аутентификации. Раньше, параметры аутентификации передавались только после получения кода ошибки 401 (т.е. запросы дублировались 401/200, 401/200, 401/200…), сейчас параметры отправляются сразу для элементов путей в которых до этого был зафиксирован запрос аутентификации (401/200, 200, 200…). Вывод осмысленного теста ошибки при попытке выполнения «hg push» для только что созданного репозитория. Достоинства Mercurial:

Быстродействие: Высокая производительность работы с хранилищем, не зависящая от числа элементом в нём (O (1) revlog); Компактное хранение данных в проиндексированном и сжатом виде; Оптимизирован для эффективной работы с данными на жёстком диске; Все изменения и файлы в репозитории дополнительно проиндексированы; Для копирования данных по сети используется HTTP и SSH, данные передаются в сжатом виде. Масштабирование Распределённая модель разработки позволяет участвовать в проекте неограниченному числу разработчиков; Допускается произвольное слияние отдельных децентрализованных репозиториев, поддерживаемых отдельными разработчиками; Объём репозитория, число файлов и зафиксированных изменений не отражается отрицательно на производительности; При работе нет необходимости ждать освобождения блокировки. Надёжность. Для контроля целостности данных в репозитории используется SHA1; Хранилище реализовано в журнальном виде — данные не замещаются, а добавляются. Ведётся журнал транзакций; Быстрый алгоритм проверки целостности репозитория; Встроенные средства резервного копирования и проверки целостности; Удобство использования. Привычный CVS-подобный набор команд; Наличие встроенной системы подсказки; Интегрированный Web-интерфейс; Большой выбор GUI интерфейсов. Лёгкость внедрения: Поддержка платформ UNIX, MacOS X и Windows; Средства, упрощающие миграцию с других систем управления исходными текстами; Поддержка нескольких моделей организации репозитория: централизованная cvs-подобная, децентрализованная иерархическая и распределённая полуиерархическая; Поддержка внешних обработчиков и дополнений.

© OpenNet