Написать пост

Apache выпустила обновленную систему управления версиями Subversion 1.10.0

Аватар Наташа Маркова

После трёх лет разработки вышла новая ветка системы контроля версий Subversion. Разработчики полностью переработали интерактивную систему разрешения конфликтов, добавили новый механизм сжатия и экспериментальные команды.

Компания Apache представила первое крупное обновление в 2018 году своего продукта Apache Subversion. В нем разработчики полностью переработали интерактивную систему разрешения конфликтов, добавили новый механизм сжатия и экспериментальные команды.

Изменение механизма авторизации на основе путей

В обновлении появилась возможность определять правила доступа к отдельным каталогам в репозитории. Теперь можно пользоваться форматами [:glob:repos:/path] и [:glob:/path] с использованием масок, а для их создания применять шаблоны *foo*.bar. Для сопоставления с одним сегментом пути подойдет конструкция /*/, с произвольным числом сегментов — /**/.

Что ещё нового?

Разработчики полностью переработали интерактивную систему разрешения конфликтов. Теперь она ищет в истории репозитория структурные изменения (операции добавления, удаления, копирования и перемещения), из-за которых возникли проблемы с локальными изменениями в рабочей копии.

Номера ревизий, имена авторов конфликтующих изменений и другие сведения теперь подгружаются автоматически — раньше их приходилось искать вручную.

Новая система научилась определять операции перемещения и переименования в истории репозитория, учитывать их при изменении локальной рабочей копии. Это сделало процесс слияния между ветками максимально прозрачным, особенно если менялись названия файлов или каталогов. Требующие однозначного решения конфликты система устраняет без запроса пользователя.

Новый формат хранилища и отложенные изменения

В качестве механизма сжатия по умолчанию используется LZ4, который существенно превосходит zlib по скорости и качеству выполнения операций. LZ4 также применяется для сжатия трафика при доступе к внешнему репозиторию по http:// и svn://. Чтобы обновиться до новой версии формата хранилища, нужно использовать команду svnadmin upgrade.

Экспериментальные команды svn shelve/unshelve/shelves позволяют на время отложить незавершенные изменения в рабочей копии. По принципу действия они похожи на принцип сохранения патча, созданного посредством svn diff и восстановленным через svn patch.

Подробнее узнать о том, что такое Subversion, чем он может быть полезен и как пользоваться системой контроля версий, можно в нашем материале.

Следите за новыми постами
Следите за новыми постами по любимым темам
595 открытий595 показов