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

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

Сообщение Sunderland93 » 05 май 2015, 11:26

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

Основные новшества:

  • По умолчанию на серверах задействован новый протокол bundle2, которому присвоен статус стабильного (в клиентах пока требуется явное включение bundle2). По сравнению с классическим протоколом, в bundle2 сокращено число этапов согласования соединения, что положительно сказалось на скорости выполнением операций push и pull, и дало возможность сделать данные операции атомарными. Кроме того, в протоколе предоставлены средства для обмена дополнительными метаданными в рамках установленного канала связи, что открывает широкие возможности для развития новшеств, например, уже продемонстрирована возможности автоматического перестроения (rebase) сервера при выполнении операции push. На сервере hg.mozilla.org поддержка нового протокола появится не раньше 1 июня.
  • Переписан код кэширования тегов, что позволило избавиться от узких мест с производительностью, проявляющихся при работе с очень большими репозиториями (например, для некоторых типов запросов к mozilla-central могли возникать подвисания в несколько секунд);
  • В web-интерфейс hgweb добавлена возможность вывода в формате JSON для почти всех вызовов API. Поддержка JSON позволяет создавать новые настройки и сервисы, работающие с Mercurial.
  • Компания Google подготовила новый бэкенд для хранения манифестов (списков файлов в коммите), который позволяет реализовать такие возможности, как клонирование только выбранных директорий. Новое хранилище позволит перенести репозитории l10n в mozilla-central;
  • Связанные с вычислениями стадии переписаны на языке Си, что заметно отразилось на производительности;
  • Приблизительно на 20% увеличена скорость работы команды "hg diff".
  • Разработчиками из компании Google проведены оптимизации частей, используемых для чтения манифеста. Операции, подобные "hg export tip", стали выполняться в mozilla-central на 50% быстрее;
  • На файловых системах, не чувствительных к регистру символов в именах файлах, возросла производительность "hg status". На платформе OS X скорость работы "hg status" возросла на 25%. Производительность вызова "hg revert" в некоторых сценариях возросла до 4 раз;
  • Добавлена команда "hg diff --root", позволяющая оценить различия, относительно произвольной директории;
  • Добавлена команда "censor", которая позволяет цензурировать данные из прошлых коммитов. Например, если по ошибке в составе коммита в репозиторий переданы сведения, которые не подлежат разглашению, то команда "censor" позволяет закрыть эти данные от клонирования клиентами.
  • В основной состав перенесена функциональность расширения "hg record". Добавлен экспериментальный интерактивный консольный интерфейс, созданный при помощи библиотеки curses (включается через "experimental.crecord = true" );
  • При вводе неизвестной команды, Mercurial теперь пытается исправить ошибку и предлагает наиболее близкую рабочую команду;
  • Устранены появившиеся в прошлом выпуске регрессивные изменения, проявляющиеся проблемами с производительностью при обращении к hg.mozilla.org через web-интерфейс;
  • Для дополнений предоставлены средства для создания собственных обработчиков для редактирования истории операций (histedit)
    Mercurial 3.4 объявлен последним выпуском, в котором поддерживаются ветки Python 2.4 и 2.5.
Sunderland93
 
Стаж: 47 лет 8 месяцев 24 дня

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

Спонсор

Спонсор
 

Вернуться в Новости из мира Linux

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2