Релиз системы управления версиями Subversion 1.7.0
12 октября 2011 года
Организация Apache Software Foundation представила релиз системы управления версиями Subversion 1.7.0, первого значительного выпуска с момента принятия в апреле 2010 года Subversion в число первичных проектов Apache. Несмотря на развитие децентрализованных систем, Subversion пользуется большой популярностью в коммерческих компаниях и проектах, использующих централизованный подход к управлению версиями и конфигурацией программных систем.
Из использующих Subversion открытых проектов можно отметить: Django, FreeBSD, Free Pascal, GCC, MediaWiki, Mono, PHP, Ruby. Поддержка Subversion реализована в таких хостингах открытых проектов, как Google Code, CodePlex и SourceForge. Результаты исследования, проведённого компанией Forrester Research, показали, что Apache Subversion лидирует в категории продуктов автономной конфигурации программного обеспечения и управления изменениями.
Среди ключевых улучшений:
- HTTPv2 - новый протокол, позволяющий увеличить производительность при обмене данными между клиентом и сервером Subversion, за счет минимизации числа обращений;
- WC-NG - полностью переписан код одной из старейших частей Subversion - библиотеки работы с рабочей копией мета-данных libsvn_wc, что позволило значительно увеличить производительность работы централизованного хранилища данных, а также обеспечить функциональность, позволяющую реализовать такие возможности, как отложенные и offline коммиты;
- Рабочие копии мета-данных, ранее разбросанные по всем директориям (каталоги .svn), теперь сохраняются в одном месте - в корне рабочей копии проекта создаётся одна директория ".svn", мета-данные в которой сохраняются с использованием SQLite. В этой же директории хранится и копия изначального содержимого всех файлов проекта (вместо text-bases отныне данные хранятся как pristines). Недостатком использования SQLite являются возможное усложнение резервного копирования, так как простое копирования файла базы во время работы с ней библиотек Subversion может привести к нарушению целостности. Отдельно отмечается, что новая версия не поддерживает автоматическое преобразования формата хранения мета-данных из ветки 1.6, для преобразования необходимо вручную выполнить команду "svn upgrade";
- svnrdump - новая клиентская утилита, предоставляющая возможности похожие на "svnadmin dump" и "svnadmin load", но способная работать с внешними репозиториями по сети. Используя данную утилиту администратору больше не требуется заходить на каждый удалённый сервер для полного доступа к репозиторям;
- Значительно увеличена стабильность и производительность клиентской библиотеки libsvn_ra_serf, используемой для организации доступа к репозиторию по HTTP. В настоящее время serf значительно опережает по скорости работы с репозиторием библиотеку neon, тем не менее neon пока оставлена в качестве библиотеки по умолчанию, но в версии Subversion 1.8 запланирован переход на serf;
- Улучшение производительности и эффективности выполнения операций по слиянию веток (merge);
- Ряд оптимизаций производительности на стороне сервера: используется более агрессивный метод кэширования и возможность управления степенью сжатия передаваемого трафика;
- Поддержка новой команды "svn patch", позволяющей применить патч в формате unidiff, полученный в результате выполнения команды "svn diff" или сторонних diff-инструментов. По сути "svn patch" повторяет действие утилиты patch, но только сразу помещая изменения в репозиторий;
- Более наглядный вывод информации при выполнении "svn update" для нескольких рабочих копий;
- При выполнении "svn diff" изменения в свойствах теперь отображаются в стиле unidiff, за исключением свойств svn:mergeinfo;
- При выводе ошибки или предупреждения теперь выводится номер, идентифицирующий тип проблемы;
- В "svn log" добавлена опция "--diff", позволяющая сразу выводить различия;
- В "svn update" добавлена опция "--parents", при указании которой автоматически создаются недостающие родительские директории;
- Новая команда "svn relocate", связывающая рабочую копию репозитория с другим корневым URL;
- В "svn diff" добавлена опция "--show-copies-as-adds", при которой скопированные файлы отображаются в стиле, как при добавлении новых файлов;
- В "svn diff" добавлена опция "--git", выводящая дополнительные аннотации о добавленных, удалённых или скопированных файлах, в стиле, подобном git-diff;
- Добавлена команда "svnlook filesize", возвращающая размер указанного пути в репозитории в состоянии для заданной ревизии или транзакции.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.