Выпуск распределённой системы управления версиями Mercurial 3.5
Ключевым новшеством является задействование протокола bundle2 по умолчанию на стороне клиента (ранее был включен только для серверов, после обновления клиентов для версии 3.5 они смогут работать с hg.mozilla.org по новому протоколу). По сравнению с классическим протоколом, в bundle2 сокращено число этапов согласования соединения, что положительно сказалось на скорости выполнением операций push и pull, и дало возможность сделать данные операции атомарными. В протоколе bundle2 также реализованы средства для обмена дополнительными метаданными в рамках установленного канала связи, что открывает широкие возможности для развития новшеств, например, возможности автоматического перестроения (rebase) сервера при выполнении операции push.
Из других изменений отмечается прекращение поддержки Python 2.4 и 2.5 (ожидается скорое начало портирования на Python 3), добавление параметра конфигурации ui.allowemptycommit (управляет допустимостью пустых коммитов), в hgignore добавлена поддержка директив include и subinclude (для включения содержимого других файлов), а также реализация серии оптимизаций производительности. Продолжена работа над реализацией возможности разбиения единого файла-манифеста на серию локальных манифестов, привязанных к отдельным директориям.
Особенности Mercurial:
- Быстродействие:
- Высокая производительность работы с хранилищем, не зависящая от числа элементом в нём (O(1) revlog);
- Компактное хранение данных в проиндексированном и сжатом виде;
- Оптимизирован для эффективной работы с данными на жёстком диске;
- Все изменения и файлы в репозитории дополнительно проиндексированы;
- Для копирования данных по сети используется HTTP и SSH, данные передаются в сжатом виде.
- Масштабирование
- Распределённая модель разработки позволяет участвовать в проекте неограниченному числу разработчиков;
- Допускается произвольное слияние отдельных децентрализованных репозиториев, поддерживаемых отдельными разработчиками;
- Объём репозитория, число файлов и зафиксированных изменений не отражается отрицательно на производительности;
- При работе нет необходимости ждать освобождения блокировки.
- Надёжность.
- Для контроля целостности данных в репозитории используется SHA1;
- Хранилище реализовано в журнальном виде - данные не замещаются, а добавляются. Ведётся журнал транзакций;
- Быстрый алгоритм проверки целостности репозитория;
- Встроенные средства резервного копирования и проверки целостности;
- Удобство использования.
- Привычный CVS-подобный набор команд;
- Наличие встроенной системы подсказки;
- Интегрированный Web-интерфейс;
- Большой выбор GUI интерфейсов.
- Лёгкость внедрения:
- Поддержка платформ UNIX, MacOS X и Windows;
- Средства, упрощающие миграцию с других систем управления исходными текстами;
- Поддержка нескольких моделей организации репозитория: централизованная cvs-подобная, децентрализованная иерархическая и распределённая полуиерархическая;
- Поддержка внешних обработчиков и дополнений.
Источник: http://www.opennet.ru/opennews/art.shtml?num=42731
|
0 | Tweet | Нравится |
|