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

Материал из Викиновостей, свободного источника новостей

5 ноября 2018 года

Доступен релиз распределённой системы управления версиями Mercurial 4.8. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить следующие: Mozilla, OpenOffice.org, OpenSolaris, NetBeans (Архивная копия от 17 января 2021 на Wayback Machine), OpenJDK, Nginx, Xine (Архивная копия от 23 июня 2014 на Wayback Machine) и W3C.

Основные изменения:

  • Стабилизирована реализация шаблонов форматирования, которые можно применять для настройки формата вывода любых команд, в том числе для применения JSON и XML для вывода;
  • Реализовано расширение "closehead" для закрытия произвольных веток без выполнения операции checkout;
  • Добавлена новая настройка commands.resolve.mark-check для вывода предупреждения или ошибки при выполнении операции "--mark" при наличии конфликтующих файлов;
  • Добавлена новая настройка commands.resolve.confirm для подтверждения действий, выполняемых без указания имени файла;
  • В команду rebase добавлен флаг "--stop" для остановки прерванных операций без отбрасывания уже перенесённых изменений;
  • Предложено экспериментальное расширение absorb для "поглощения" рабочих изменений соответствующими наборами изменений;
  • Добавлено экспериментальное расширение fastannotate для ускорения операций аннотирования с использованием предварительно сформированного кэша. Расширение также предоставляет дополнительные опции, такие как "--deleted";
  • В набор hgext добавлено расширение phabricator;
  • В файл конфигурации добавлена настройка http.timeout для определения таймаута;
  • Обеспечена автоматическая загрузка расширений для работы с текущим хранилищем (например, lfs);
  • Расширены правила автодополнения ввода команд hg для zsh;
  • Проведены оптимизации производительности.

Особенности Mercurial:

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

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Выпуск распределённой системы управления версиями Mercurial 4.8», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.