Релиз распределённой системы управления версиями Mercurial 2.0
Опубликовано 00 0000 00:00:00
Увидел свет релиз распределённой системы управления версиями Mercurial 2.0. Версия 2.0 не отличается кардинальными изменениями, смена первой цифры является следствием принятых в проекте правил нумерации релизов (после версии 1.9 выходит не 1.10, а 2.0).
Источник: http://www.opennet.ru/opennews/art.shtml?num=32211
Ключевые изменения:
- Новая команда graft, реализующая функциональность, сходную с расширением transplant. Команда graft позволяет скопировать отдельные изменения из другой ветки без непосредственного слияния веток, что существенно упрощает выполнение таких операций, как бэкпортирование изменений;
- В состав включено расширение largefiles для работы с помещаемыми в репозиторий большими бинарными файлами, которые плохо сжимаются, не пересекаются с другими файлами и не поддаются слиянию, т.е. которые неэффективно хранить в стандартном формате Revlog, базирующемся на сохранении изменений в сжатом виде. Для хранения подобных файлов расширение largefiles использует отдельное централизованное хранилище, доступное по сети. Поддерживается только набор простейших действий: добавление, извлечение, переименование и проверка целостности. Доступ к хранилищу может быть организован через SSH или HTTP (hgweb), а также в форме создания директории, доступной через сетевую ФС;
- В систему подсказки, выводимую через команду help, добавлены реальные примеры использования различных команд (help -v);
- В команду import и расширение rebase добавлена опция "--edit";
- В команде log реализована поддержка стиля вывода 'bisect';
- В расширение color добавлена поддержка определения стилей для заданных тегов;
- В расширение convert добавлена поддержка закладок в filemap;
- В расширении export реализована опция форматирования %m, которая сопоставлена с первой строкой сообщения о коммите;
- В расширение rebase добавлена опция "--rev" и возможность выполнить rebase для прародителя;
- В расширении share появилась поддержка команды unshare.
Среди проектов, использующих Mercurial, можно выделить следующие: OpenSolaris, NetBeans, OpenJDK, ALSA, Mozilla, Xen, Xine, Dovecot, NTFS-3G, OpenOffice, Python, Vim и W3C.
Достоинства Mercurial:
- Быстродействие:
- Высокая производительность работы с хранилищем, независящая от числа элементом в нём (O(1) revlog);
- Компактное хранение данных в проиндексированном и сжатом виде;
- Оптимизирован для эффективной работы с данными на жёстком диске;
- Все изменения и файлы в репозитории дополнительно проиндексированы;
- Для копирования данных по сети используется HTTP и SSH, данные передаются в сжатом виде.
- Масштабирование
- Распределённая модель разработки позволяет участвовать в проекте неограниченному числу разработчиков;
- Допускается произвольное слияние отдельных децентрализованных репозиториев, поддерживаемых отдельными разработчиками;
- Объём репозитория, число файлов и зафиксированных изменений не отражается отрицательно на производительности;
- При работе нет необходимости ждать освобождения блокировки.
- Надёжность.
- Для контроля целостности данных в репозитории используется SHA1;
- Хранилище реализовано в журнальном виде - данные не замещаются, а добавляются. Ведётся журнал транзакций;
- Быстрый алгоритм проверки целостности репозитория;
- Встроенные средства резервного копирования и проверки целостности;
- Удобство использования.
- Привычный CVS-подобный набор команд;
- Наличие встроенной системы подсказки;
- Интегрированный Web-интерфейс;
- Большой выбор GUI интерфейсов.
- Лёгкость внедрения:
- Поддержка платформ UNIX, MacOS X и Windows;
- Средства, упрощающие миграцию с других систем управления исходными текстами;
- Поддержка нескольких моделей организации репозитория: централизованная cvs-подобная, децентрализованная иерархическая и распределённая полуиерархическая;
- Поддержка внешних обработчиков и дополнений.
Источник: http://www.opennet.ru/opennews/art.shtml?num=32211
|
0 | Tweet | Нравится |
|