Выпуск распределенной системы управления версиями Mercurial 4.9
Доступен релиз распределенной системы управления версиями Mercurial 4.9. Код Mercurial написан на языке Python (требующие высокой производительности части оформлены в виде модулей на Си или Rust) и распространяется под лицензией GPLv2+. Среди проектов, использующих Mercurial, можно выделить следующие: Mozilla, OpenOffice.org, OpenSolaris, NetBeans, OpenJDK, Nginx, Xine и 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 для повышения производительности.