О славной системе контроля версий. Vivat, Bazaar!
Когда услышал о ней от Александра Бельченко (bialix) на exception.org.ua — пожал плечами. Я уже не представлял себе жизнь без version control system, и считал, что subversion (svn) — то, что надо. И лучше — не придумаешь. Ведь SVN — это тот же CVS (отличная штука, пользовался) — но только без всех раздражающих недоработок. Время, затрачиваемое на нее уменьшается почти до незаметного. А польза — очевидна. Куча плагов и настроек. И trac с этим зверем — родной. А самое главное — все ребята, с которыми приходилось работать, осваивали ее без труда. Правда. Даже художники (у них голова повернута немного не в ту сторону, кто знает — поймет). Культура работы возросла, и практически исчезло время на согласование «версии у меня и у тебя». И блокировок нет — чур-чур SourceSafe и AlienBrain. А еще консольный интерфейс простой как бубен и удобный как тапочки. А если его не хватает (для художников важно) — есть tortoise svn. А еще pysvn — как же удобно! И куча других GUI систем. А еще — даже sourceforge.net его поддерживает (есть куда выкладывать свой OpenSource)
Чего же еще требовать и что искать? Новый велосипед?
Но присматривался ревниво — а вдруг? Хоть и пугала идея РАСПРЕДЕЛЕННОЙ разработки. Непонятная какая-то.
Но тут жизнь переменилась. Ушел с работы, другую не захотел искать быстро. Появилось свободное время. Потом маятся бездельем надоело, да и подработок небольшой оказалось найти недолго...
Но без системы контроля версий жить уже не мог. Неуверенно себя чувствовал. Поднимать локально svn — можно, но смешно. А еще я все-таки смотрел, что там базаровцы делают...
И в качестве эксперимента — попробовал.
Сначала — локально (знаете ли, для bzr не обязателен даже сервер). Commit — add — mv — status — log — diff — export. Цепочка прошла «на ура». Я даже забывался и пытался писать svn ci -m «fixed something» вместо bzr ci -m «fixed something». Несколько секунд пялился на ошибку и понимал, что я уже не в svn :) Общее ощущение — консоль еще проще, чем в svn. Куда полнее распознает мои файлы (еще меньше нужно включать в ignore list, да и само включение проще. Нужные команды обрели элементарный вид, а лишние — исчезли). Не нужно говорить svn remove — bzr сам понимает, какие файлы я удалил. А bzr mv осталась — понимаю почему.
Потом — чуть сложнее. Синхронизация работ. Тоже — легче простого, Когда у каждого по своей ветке. В svn ветки заводят по серьезной причине, а в bzr — просто так. Взял у кого-то версию библиотеки — и вот у тебя уже ветка. Будет она выкладываться в инет или останется личной — как знать. Если нет — будет только моей, и сервер о ней ничего не узнает. Эта свобода поначалу пугала — потом привык.
То, что код склеивается (merged) без проблем — привычно, избалован svn. Лучше или хуже — не знаю. Достаточно хорошо.
Естественно, стало интересно, а как у bzr с серверами? Оказалось — не хуже, чем в svn. Т.е. так же по привычному — работать можно. Можно и чуть удобнее — bzr unbind, bzr commit, commit, commit... И снова — bzr bind. С синхрнизацией проблем нет. Есть еще много занятных способов организации работы — я их еще не пробовал.
Но то, что с svn ОЧЕНЬ ЛЕГКО перейти на bzr, при этом не ощутив неудобств, но приобретя дополнительную свободу — факт.
TortoiseBzr уже есть. Как некоторое количество GIU сред. Есть поддержка под ряд IDE (список уточняйте, я их не использую). Есть кое-какая поддержка в trac. Aaron делает полностью свой аналог, отражающий новый стиль разработки. Бета работает, вырастет из этого что-то доброе и хорошее. Есть и launchpad.net — bzr хостинг для OpenSource проектов.
Что из минусов? Должны же быть? Конечно есть. Проект еще относительно молодой. Ядро работает очень стабильно, нареканий нет. Но могут быть проблемы с «мясом» — трекерами, GUI примочками и прочей инфраструктурой. Я не испытал — так потому, что люблю консоль прежде всего. Проблемы решаются и довольно быстро исчезнут. Люди работают. Над тем же для svn работают гораздо дольше.
Есть беда с русской документацией. Ее практически нет. Эхх, если бы bialix занялся... С «просто документацией» тоже не все гладко. У svn куда более мощный пакет. И это понятно. Но скоро, думаю, все будет.
А теперь, как водится, резюме. Лично мне очень понравилось, и намерен использовать дальше. Дает дополнительную свободу по сравнению с svn и перекрывает его полностью. Развивается в нужную сторону, и скоро станет наравне с «законодателями моды», а им прийдется потесниться. Лично мне понятие «моды» в программировании чуждо, а bazaar предложил отличную альтернативу.
И, наконец, мне просто с ним УДОБНЕЕ, чем с svn. А до того более приятную систему контроля версий, чем svn — не видел. Сказал свое ИМХО, а теперь кидайте в меня подушками!
Все про українське ІТ в телеграмі — підписуйтеся на канал редакції DOU
98 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.