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

Доступен релиз распределённой системы управления версиями Mercurial 4.9. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си или Rust) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить следующие: Mozilla, OpenOffice.org, OpenSolaris, NetBeansOpenJDKNginxXine и W3C.

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

  • Устранена уязвимость, позволяющая через использование символических ссылок и субрепозиториев обойти код для проверки путей и при клонировании подконтрольного репозитория организовать запись файла за пределы корневого каталога с репозиторием. В качестве обходного пути защиты можно запретить использование субрепозиториев (в секции "[subrepos]" следует добавить опцию "allowed = false");
  • В команде 'hg histedit' предложен новый консольный интерфейс редактирования на базе библиотеки curses (для включения в 'ui.interface' или 'ui.interface.histedit' следует указать 'curses');
  • Для новых репозиториев включена по умолчанию стратегия сохранения delta-изменений 'sparse-revlog';
  • Добавлена новая опция 'rewrite.update-timestamp=True'для обновления данных о времени коммита после редактирования истории;
  • Добавлена новая опция 'ui.message-output=stderr' для упрощения разбора сообщений с состоянием из скриптов;
  • Реализован новый шаблон файловых путей rootglob, позволяющий задать маску относительно корня репозитория;
  • Продолжена переработка алгоритмов на языке Rust для повышения производительности.

Источник: OpenNET