вторник, 1 марта 2016 г.

[prog.dvcs] Так вот про современные DVCS...

Проштудировал тут доки по трем DVCS: git, mercurial (hg) и bazaar (bzr).

Исходя из того, что и как описано в документации, bzr выглядит самой вменяемой системой. Простой, но мощной. К сожалению, есть только один хостинг для bzr -- launchpad -- да и тот только для OpenSource проектов. Т.е. если захочешь вести закрытый проект на bzr, то занимайся и хостингом, и интеграцией с какими-то другими сервисами (вроде CI), самостоятельно.

Hg выглядит чуть мудренее bzr, но проще git-а. По крайней мере пока остаешься в рамках простой модели -- захотел отдельную ветку, склонировал репозиторий, затем смерджил изменения из нового репозитория в старый, после чего убил новый репозиторий нафиг. Но вот когда пытаешься разобраться зачем нужны еще и именованные ветки, то как-то все тускнеет :( Еще неприятно, что документация по hg производит впечатление не первой свежести. На официальном сайте дана ссылка на книгу "Mercurial: The Definitive Guide", но книга эта от 2009(!) года. Понятно, что основные концепции вряд ли изменились, но читать про возможности версии 1.x когда доступна версия 3.7 как-то странно.

Отрадно, что репозитории hg можно размещать у разных хостеров. Хотя в плане всяких бонусов, вроде интеграции с разнородными CI, hg заметно уступает git-у, как мне показалось.

Ну а git, как уже говорил, это инструмент для более интеллектуально развитых людей, чем я. С git-ом, конечно, мощь и сила, и куча свистелок и перделок от разных производителей, но очень и очень стремно браться за инструмент, с тонкостями которого ты сам разберешься с огромным трудом. И уж тем более, вряд ли сможешь объяснить эти тонкости кому-то другому. Да и тот простой факт, что спустя столько времени после появления на свет для нормальной работы с git-ом в Windows нужно запускать отдельный git-bash и проводить все манипуляции оттуда, да еще и с риском нарваться приключения с CR/LF... Козлина она козлина и есть, короче говоря :)


Имхо, разработчики svn допустили два больших просчета. Во-первых, официально рекомендовали структуру репозитория из trunk/tags/branches. Что явно подходит далеко не всем проектам. Но бесхитростное следование этой рекомендации набивают людям слишком много шишек. Во-вторых, не понятно, почему разработчики svn до сих пор не сделали возможность создания локальных копий репозиториев? Был бы маленький и простой как две копейки инструмент, позволяющий вести разработку локально... Но это была бы уже совсем другая история :)

Комментариев нет: