Jump to content

    

субъективные впечатления о системах контроля версий git/hg/bzr

не претендуя на объективность, хочу поделится впечатлениями от попытки развернуть систему и попробовать инструментарий

 

интересовало работа как под виндовс, так и под линукс, для достаточно большого HDL проекта (как выяснилось, что со всеми библиотеками тянет на несколько миллионов строк - cvs репозиторий прошлого проекта 3Gb со всякими бинарниками : visio, word и т.п.)

 

хотелось бы отметить, что для маленькой группы, которая тесно сидит в одном месте переход с svn на распределенную систему вряд ли имеет смысл

 

-------------

 

больше всего понравился git

в дополнение к сравнениям в сети я бы отметил наличие gui (gitk), которое одинаково под линухом и виндой и действительно визуализирует лог в виде дерева (типа revision graph в tortoisesvn)

также мне показалось важным наличие авто-коррекции виндовых CR-LF в нормальный перевод строки - что в других системах либо требует специальной настройки либо убивает diff

минималистическую интеграцию в виндовый экплорер считаю удачной - gui here или bash here - это имхо, просто и правильно

 

специфических плюсов bazaar-а я не понял, видимо мне не совсем важны предоставляемые этой системой преимущества. важным, без шуток, плюсом я считаю участие bialix в этом форуме.

графический интерфейс представляет из себя переформатированый текстовый вывод, поэтому большого смысла в нем я не увидел. реализация интеграции в эксплорер находится в зачаточном состоянии

 

hg интегрируется в эксплорер и создает иконки такие же как tortoisesvn, но при этом опять весь графический интерфейс сводится к выводу текста в окошках (revision graph там как раз отсутствует)

при этом эксплорер начал как-то подозрительно тормозить, перелистывая папки и этот tortoisehg я по-быстрому убрал. из командной строки в юниксе работает, графические интерфейсы в юниксе не смотрел.

 

-----------------------

 

может я чего-то не заметил - все-таки не эксплуатировал системы по настоящему, просто прогнал туториалы и минимальный набор операций (которые полагаю использовать для работы), буду благодарен, если мне покажут неточности в моих впечатлениях

Share this post


Link to post
Share on other sites

Git: смущает состояние порта для Windows. Устанавиливал msysgit - показалось, что установилась половина Юникса (очевидно, дли обеспечения работы git). Сотня разных команд, без поллитры не разберёшься.

Mercurial: установил TortoiseHg. Понравилось. GTK GUI немножко странно выглядит, конечно, но это мелочи. Смутило только одно: при переименовании файла хранилице раздувается на размер (сжатой) копии этого файла. При переименовании папки с кучей толстых файлов размер хранилища будет увеличиваться очень существенно.

Bazaar: TortoiseBzr в зачаточном состоянии. Командная строка работает нормально. Радует набор фичей. Смущает раздутый набор основных понятий: формат хранилища (~10 вариантов), branch (простой, stacked, shared repository), checkout (простой, lightweight), bind/unbind. Такое ощущение, что Bazaar хочет быть "всем для всех". В результате опять же без поллитры не разберёшься. В этом смысле очень привлекательно выглядит Mercurial.

Share this post


Link to post
Share on other sites

Не надо писать GIT MERCURIAL BAZAAR все в верхнем регистре. Это не аббревиатуры. Это имена собственные. Должно быть Git, Mercurial, Bazaar.

 

Окей? Долой безграмотность.

 

не претендуя на объективность, хочу поделится впечатлениями от попытки развернуть систему и попробовать инструментарий

 

интересовало работа как под виндовс, так и под линукс, для достаточно большого HDL проекта (как выяснилось, что со всеми библиотеками тянет на несколько миллионов строк - cvs репозиторий прошлого проекта 3Gb со всякими бинарниками : visio, word и т.п.)

 

хотелось бы отметить, что для маленькой группы, которая тесно сидит в одном месте переход с svn на распределенную систему вряд ли имеет смысл

 

Имеет, если охота использовать коротко живущие ветки для реализации каждой отдельной фичи. Почитайте UQDS: divmod.org/trac/wiki/UltimateQualityDevelopmentSystem

 

Обратите внимание на то, что добрая половина документа -- это объяснение почему ветки это хорошо. Плюс гит имеет хорошую двухсторонюю работу с нативными свн-ветками, т.е. можно взять свн код, затащить его в гит, там поработать, объединить с транком, а в конце просто сделать push из гита назад в свн. Базар это тоже умеет, но гит вам понравился больше.

 

bzr: графический интерфейс представляет из себя переформатированый текстовый вывод, поэтому большого смысла в нем я не увидел.

 

Извините? Это вы о чем?

Обратите внимание на этот скриншот: http://qbzr.googlegroups.com/web/qlog.png

 

Это вам что -- не граф ревизий? Вы че, серьезно?

 

 

Bazaar: TortoiseBzr в зачаточном состоянии. Командная строка работает нормально. Радует набор фичей. Смущает раздутый набор основных понятий: формат хранилища (~10 вариантов), branch (простой, stacked, shared repository), checkout (простой, lightweight), bind/unbind. Такое ощущение, что Bazaar хочет быть "всем для всех". В результате опять же без поллитры не разберёшься. В этом смысле очень привлекательно выглядит Mercurial.

 

Я уже слышал этот аргумент, что в Базаре чересчур много понятий. Спорить с ним не буду, я скорее согласен с ним, чем наоборот.

 

НО! Я готов терпеливо объяснять, как можно прожить не вникая в эти тонкости и не заморачиваться.

 

Мой подчиненный на работе так и живет: освоил базовый набор команд и ему хватает для эффективной работы.

 

Так что если не пугаться и отвлечься от туториалов, то освоиться будет так же легко, как и в hg.

 

---

 

Ребята, вот что я скажу. У каждой из 3х систем есть свои достоинства и недостатки. На первый взгляд все достоинства и недостатки не видно. Иногда даже через пару месяцев на все грабли можно не наступить. Сегодня Базар -- это достаточно хорошая система. В чем-то лучше, но в чем-то и хуже других 2х. Весь вопрос в том, какие достоинства вам важны в первую очередь и с какими недостатками вы согласны мириться.

 

Делать выбор системы на основе эмоций -- гиблое дело.

 

Делать выбор системы только потому что в форуме вам отвечает кто-то толковый -- тоже не самый оптимальный вариант.

 

Однако, как ни странно, если взвесить за и против всех 3 систем с холодным сердцем и ясным рассудком, то для среднестатистического (3 руки, 3 ноги, 1,5 глаза) пользователя я бы порекомендовал начинать с Меркуриала.

 

Но лично я с Базара на Меркуриал переходить не буду ни при каких обстоятельствах. Может быть на Гит когда-нибудь, но я не уверен. Остается еще слабая надежда, что главразрабы Базара таки доделают его до ума (в плане скорости и поддержки концовок строк).

Share this post


Link to post
Share on other sites
не претендуя на объективность, хочу поделится впечатлениями от попытки развернуть систему и попробовать инструментарий

 

интересовало работа как под виндовс, так и под линукс, для достаточно большого HDL проекта (как выяснилось, что со всеми библиотеками тянет на несколько миллионов строк - cvs репозиторий прошлого проекта 3Gb со всякими бинарниками : visio, word и т.п.)

ой какая интересная тема!!

 

 

.. если охота использовать коротко живущие ветки для реализации каждой отдельной фичи. Почитайте UQDS: divmod.org/trac/wiki/UltimateQualityDevelopmentSystem

 

Обратите внимание на то, что добрая половина документа -- это объяснение почему ветки это хорошо. Плюс гит имеет хорошую двухсторонюю работу с нативными свн-ветками, т.е. можно взять свн код, затащить его в гит, там поработать, объединить с транком, а в конце просто сделать push из гита назад в свн.

да-да!!.. очень пользительная фича!!!

 

to yes

>> хотелось бы отметить, что для маленькой группы, которая тесно сидит в одном месте переход с svn на распределенную систему вряд ли имеет смысл

 

вот тут описана ситуация (проблема), в которой распределённые системы (да еще и с поддержкой свн-веток реально рулят: http://electronix.ru/forum/index.php?showtopic=49927

Share this post


Link to post
Share on other sites
Git: смущает состояние порта для Windows. Устанавиливал msysgit - показалось, что установилась половина Юникса (очевидно, дли обеспечения работы git). Сотня разных команд, без поллитры не разберёшься.

 

ну вообще-то виндовый инсталятор git < 10 MB, а других около 15

 

за нормальные утилиты grep, find, awk только спасибо можно сказать (там кстати не cygwin, a mingw)

 

и майкрософт за 20 лет так и не сумел сделать нормальное автопродолжение ввода - то что есть - это просто издевательство

 

 

 

 

 

Не надо писать GIT MERCURIAL BAZAAR все в верхнем регистре. Это не аббревиатуры. Это имена собственные. Должно быть Git, Mercurial, Bazaar.

 

Окей? Долой безграмотность.

ОК :)

 

Имеет, если охота использовать коротко живущие ветки для реализации каждой отдельной фичи. Почитайте UQDS: divmod.org/trac/wiki/UltimateQualityDevelopmentSystem

 

а чем svn ветка отличается?

мне показалось, что Bazaar использует схожий принцип "копирования"

 

ну и git умеет с нативными cvs работать, по крайней мере git-cvs пакадже имеется так же как и git-svn (но не проверял)

 

Извините? Это вы о чем?

Обратите внимание на этот скриншот: http://qbzr.googlegroups.com/web/qlog.png

Это вам что -- не граф ревизий? Вы че, серьезно?

 

вот кстати иллюстрация о необходимости понятной документации или наличия того, у кого можно спросить - сам бы я не догадался, что в эти серенькие кружочки надо кликать, чтобы развернулось "дерево"

 

btw: а у hg такое есть?

 

Однако, как ни странно, если взвесить за и против всех 3 систем с холодным сердцем и ясным рассудком, то для среднестатистического (3 руки, 3 ноги, 1,5 глаза) пользователя я бы порекомендовал начинать с Меркуриала.

 

вот мне как раз показалось наиболее неподходящим вариантом - то ли потому, что начал сравнивать последним, то ли настроение плохое было :)

 

не понравилось отсутствие единого интерфейса под виндовс и линукс - то есть вдвое больше времени разбираться/глюков воркэраундить

 

я согласен, что для нормальной работы набора комманд достаточно, но если что-то разбирать - хотелось бы иметь внятную визуализацию

 

опять же для git/bzr есть моды для xemacs-а (причем для git несколько), а для hg нашел только для emacs в составе 3-в-1

а будет ли ОК с emacs-овским скриптом - не понятно (чего-то я к xemacs-у привык)

 

доделают его до ума (в плане скорости и поддержки концовок строк).

а что это проблема CR-LF? или о чем то другом

она что не решается каким-то скриптом (ну то есть с незначительными усилиями)?

Share this post


Link to post
Share on other sites
за нормальные утилиты grep, find, awk только спасибо можно сказать (там кстати не cygwin, a mingw)

 

http://gnuwin32.sf.net рулит если често без всякого msys

 

а чем svn ветка отличается?

 

тем что merge tracking так в svn до ума и не довели. по крайней мере то, что я прочитал о поддержке в версии свн 1.5 вызвало только грустную ухмылку. Те кто плотно работал с ветками и их объединением в распределенных системах, те поймут -- свн предлагает полумеры. Но это ее личное дело.

 

вот кстати иллюстрация о необходимости понятной документации или наличия того, у кого можно спросить - сам бы я не догадался, что в эти серенькие кружочки надо кликать, чтобы развернулось "дерево"

 

Гм. как говорится -- без комментариев. Если плюсик в центре никакие аналогии не вызывает, то да. Насколько я могу судить плюсик в квадратике или кружочке используется во многих графических пакетах для работы с разворачиванием веток в TreeView виджетах. Вы похоже плотно сидите в командной строке, только так я могу для себя объяснить вашу реакцию.

 

а что это проблема CR-LF? или о чем то другом

она что не решается каким-то скриптом (ну то есть с незначительными усилиями)?

 

Сейчас один из разработчиков Базара снова вернулся к реализации нативной поддержки CR-LF.

Так что надежда только укрепилась.

 

Любые внешние скрипты -- это подпорки. В марте-апреле этого года я пытался написать патч для Базара для поддержки концовок строк. Поверьте мне просто на слово -- это только кажется, что там все легко. Есть много нюансов, которые нужно учитывать, чтобы вся система в целом работала корректно.

Share this post


Link to post
Share on other sites

по моему опыту svn утомил сильно своей рубленостью - если закойто мусор закомитил, его потом невырубиш и топором, 2) для того чтобы делать правки более менее способные накладыаться на другие ветки надо делать аккуратные changesetы, a svn такого непонимает.

посему перелез на меркуриал и сичас радуюсь.

основная мулька у него ето расширение mq - альтернатива линуховой тулы quilt - менеджер управления патчами.

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

tortoisehg практически непользуюсь, ненужно както.

 

git +quilt имхо даст меркуриалу фору сильную, но гит сложнее в освоении и как его под виндой запускать? под msysом? гемор ето.

 

вот кратко мой опыт и мнение

Share this post


Link to post
Share on other sites

тож смотрел с сторону гита ... но на момент просмотра под форточками он адекватно не работал ... В итоге сел на меркуриал(тогда он был 0.9) и на нем и сижу ... В принципе пользую командную строку( в силу привычки) , но коллеги активно используют черепаху(TortoiseHg) ... Она(TortoiseHg) кстати, дерево веток нормально рисует ... IMHO плохо только одно - мерк очень плохо относиться к файлам >10Mb ....

Share this post


Link to post
Share on other sites
hg интегрируется в эксплорер и создает иконки такие же как tortoisesvn, но при этом опять весь графический интерфейс сводится к выводу текста в окошках (revision graph там как раз отсутствует)

Как раз присутствует. См. скрин.

при этом эксплорер начал как-то подозрительно тормозить, перелистывая папки и этот tortoisehg я по-быстрому убрал.

Хм. Надо смотреть настройки.

post-21999-1262022083_thumb.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this