пятница, 5 августа 2011 г.

Bazaar уверенно удерживает третье место

Ни для кого ни секрет, что bzr не является самой-пресамой популярной DVCS по состоянию на 2011 год. По моим личным наблюдениям первое место уверенно держит git, я думаю не в последнюю очередь благодаря GitHub.

На блогах Microsoft опубликованы результаты опроса (через Twitter) предпочтений разработчиков Open Source проектов. Насколько эта выборка репрезентативна -- вопрос спорный. Однако она достаточно хорошо на качественном уровне показывает тенденции: git > hg > bzr.

Выбрав цифры только для тройки git/hg/bzr и беспощадно усредняя их можно прийти к такой средней температуре по больнице:
  • git ~77%
  • hg ~18%
  • bzr < 5%
Почему все еще имеет смысл использовать bzr? может спросить кто-то.

С моей точки зрения причины к этому могут быть следующие:
  • вы и ваша команда более чем удовлетворены работой bzr и у вас нет причин менять проверенного коня. (По моему личному мнению каждая система из тройки имеет свои недостатки, с которыми придется мириться)
  • Вы предпочитаете работать в централизованном стиле не теряя плюсов DVCS
  • вам нравится GUI интерфейс к bzr -- QBzr и/или Bazaar Explorer, и вы не хотите их потерять при переходе на другую систему. Я не раз и не два получал отзывы от различных людей, даже от (увы) бывших пользователей bzr о том, что QBzr очень хорош. И я с этим согласен
  • вам нравится использовать Launchpad для хостинга своих открытых проектов.
  • вы используете bzr для работы с svn через bzr-svn. Плюшки в виде QBzr/Explorer прилагаются и здесь.
Собственно других веских причин я затрудняюсь назвать. Я строго убежден, что лучшая DVCS еще не написана, и что у hg просто нет шансов подняться до более-менее паритета с git. Хотя на Windows платформе у hg много преимуществ, учитывая, что git на Windows -- это весьма тяжкое испытание.

8 комментариев:

  1. Согласен насчет "лучшая DVCS еще не написана".

    Думаю Git так рванул за счет его использования для разработки ядра и GitHub. Например, Basho перешли с BitBucket на GitHub, соотв. сменив Hg на Git и рапортовали об увеличении количества сторонних патчей.

    ОтветитьУдалить
  2. А также не в последнюю очередь благодаря "рельсам" -- это весьма популярный веб-фреймворк и он тоже может задавать моду на git.

    Увеличение количества патчей -- здесь думаю заслуга GitHub. Процесс практически экспоненциальный с положительной обратной связью -- чем больше народа пробует GitHub тем больше патчей, тем больше народа интересуется git+GitHub и так по кругу.

    ОтветитьУдалить
  3. Помимо удобства qbzr, Bazaar лучше всех работает с русским языком в Windows. Ни в Git, ни в Mercurial нельзя работать из командной строки, если есть имена файлов или комментарии к коммитам на русском.

    ОтветитьУдалить
  4. Вы больше не планируете писать в этот блог? Я не так давно начал использовать для одного проекта «базар», и во многом очень доволен (в особенности интерфейсом QBzr).

    Но есть некоторые вещи, которые сходу непонятно, как правильно делать (мой опыт меркуриала не помог). В частности, в меркуриале я часто работаю с MQ (очередью патчей), причем как собственно с очередью, так и просто как со средством поправить ошибку в локальном коммите (не обязательно последнем).

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

    Хотелось бы понять, какие средства есть в «базаре» для поддержки аналогичных процессов.

    ОтветитьУдалить
  5. @Halega: думаю в hg не все так плохо с русским как в git, по крайней мере комментарии на русском должны работать. А вот имена файлов -- там однозначно есть проблемы (хотя и не сразу очевидные) из-за сознательного отказа поддерживать unicode.

    ОтветитьУдалить
  6. @Helgi: в этот блог я еще собираюсь писать, но жизнь часто вносит свои коррективы, поэтому не буду ничего обещать.

    Конкретные вопросы лучше все-таки задавать в группе ru_bzr: http://groups.google.com/group/ru_bzr

    Насчет MQ: в базаре нет прямой аналогии этому инструменту. Обычно вместо него используют либо плагин bzr-loom либо bzr-pipeline.

    ОтветитьУдалить
  7. Кажется, в официальной документации к Mercurial сказано, что если хотите работать с русским языком в Windows, то единственная возможность - использовать TortoiseHG. Из командной строки нельзя, т.к. они не учитывают, что там кодировка cp866, и все комментарии, оставленные в cmd, оказываются битыми.

    ОтветитьУдалить
  8. Мне нравится bzr из-за своей простоты. Лично я считаю, что Bazaar самая простая СКВ (rcs не в счет). Один каталог - одна ветка. Минимум различных команд и ключей. Мне нравится как просто он делает merge. Мне нравится команда 'bzr mv --auto'. Мне нравится qbzr. И эта совокупность "плюшек" сдерживает какое-либо стремление использовать git или hg. Зачем усложнять себе жизнь?

    ОтветитьУдалить