Первое знакомство с системой управления версиями (VCS) сразу же вызывает множество вопросов. Если говорить прямо, то сначала вообще не понятно как ею пользоваться, но через некоторое время вы привыкаете и уже не понимаете, как раньше обходились без неё. На сегодняшний день наиболее популярной среди бесплатных VCS является Subversion. Но, во-первых, она не единственная, а, во-вторых, существуют VCS, которые предоставляют принципиально новые возможности. Речь идет о так называемых распределенных системах управления версиями. Сразу поясню, что означает слово распределенные. Системы управления версиями хранят историю изменений в специальном хранилище (repository). В случае Subversion все разработчики используют одно общее хранилище, а распределенные системы позволяют использовать для одного проекта несколько хранилищ. Главное преимущество тут в том, что любой разработчик может нормально работать с системой контроля версий, не имея доступа к общему серверу. Естественно, любые изменения сделанные в одном хранилище можно «слить» в другое. В общем, я решил поработать с одной из таких VCS. Остановил я свой выбор на системе под названием Bazaar.
Почему? Причин целая куча. Во-первых, распространяется она по лицензии GPL v2, т. е. бесплатно. Во-вторых, есть версии для Windows, различных дистрибутивов Linux, MacOS. В-третьих, имеет отличную документацию. В-четвертых, большинство команд совпадает с Subversion. И, самое главное, разработчики заявили, что Bazaar – это Version Control for Human Beings (система управления версиями для людей). Мне очень захотелось проверить это утверждение . Скажу сразу, я ни минуты не жалею, что решил поработать с этой системой. Но обо всем по порядку. Установка Я устанавливал версию для Windows. Процесс стандартный и сводится к нажатиям на кнопку «Next». После завершения вы сможете работать с Bazaar из командной строки. Автоматически устанавливается расширение для Проводника – TortoiseBzr, правда оно имеет статус экспериментального и использовать его я не пробовал. Меня больше интересовал плагин к Eclipse. Кроме того, на данный момент существует более двух десятков расширений сторонних разработчиков, которые позволяют сделать работу с Bazaar более комфортной. Настройка В принципе, ничего делать не нужно. Можно, конечно, установить дополнительные плагины, но для первого знакомства с Bazaar они не нужны. Приступаем к работе Для эксперимента берем любую папку (например, e:\myproject). Есть в ней файлы или нет, роли не играет. Открываем консоль и, находясь в этой папке, выполняем команду: bzr init В результате появится скрытая папка. bzr со служебными файлами. В ней будет находиться локальное хранилище. Теперь создаем в этой папке несколько файлов (если их там еще нет) и выполняем bzr add Эта команда указывает, какие файлы нужно отслеживать. В данном случае будет рекурсивно добавлено все содержимое текущей папки. Естественно, в этой команде можно явно указать имена файлов и папок или создать файл. bzrignore и перечислить в нём маски файлов (wildcards), которые отслеживать ненужно.
Чтобы сохранить изменения в хранилище, выполняем: bzr commit – m “ваш_комментарий” Теперь изменяем, любой из файлов и выполняем: bzr diff Система покажет различия в файлах рабочей копии (папке e:\myproject) и хранилище. Чтобы зафиксировать изменения в файле, снова выполняем: bzr commit – m “ваш_комментарий” Примечание. В таком виде команда сохранит изменения сделанные во всех файлах рабочей копии. Если вы хотите зафиксировать изменения только в одном из них, то нужно указать его имя явно. bzr commit – m “ваш_комментарий” file_name Посмотреть историю изменений можно с помощью bzr log Старую версию файла можно получить с помощью bzr cat – r X file_name Х – номер ревизии Если вы хотите вернуть рабочую копию в предыдущее состояние, выполните bzr revert – r – Х Так что можно обеспечить себе такой же уровень комфорта, как и при работе с Subversion. Даже выше . Документация Оставила очень хорошее впечатление. Помимо основного руководства есть шпаргалки, статьи для тех, кто работал с другими VCS и т. п. Кстати, советую почитать раздел Workflows, наглядно показаны возможности распределенных систем. Заключение Я специально хочу отметить, что не предлагаю вам немедленно переходить на Bazaar. Более того, я даже не уверен, что она когда-нибудь станет лидером на рынке. Просто децентрализованная система действительно может предоставить ряд интересных возможностей. Кроме того, если вы раньше никогда не работали с VCS, то вам будет проще начать работать с Bazaar, чем с той же Subversion. До встречи!