пятница, 17 июня 2011 г.

Почему Git не всегда лучше Subversion

Отличное сравнение SVN и Git с автомобилем и вертолётом: http://www.justincarmony.com/blog/2011/02/24/analogy-for-moving-from-svn-to-git/

Сори, там по-английски.

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

Ivan A-R комментирует...

Чего-то мне лень читать на нерусской мове, но на мой взгляд у svn единственное преимущество - можно жестко разделить доступ к разным частям проекта между разными пользователями.

GiNeR комментирует...

> на мой взгляд у svn единственное преимущество - можно жестко разделить доступ к разным частям проекта между разными пользователями.

- Это из главных преимуществ.
- Второе - возможность вытащить ветку не скачивая весь репозиторий.
- Третье (оно должно быть первым в списке) - простота.

Если сравнивать CVS и Subversion, то это сравнение запорожца и современного автомобиля. CVS устарел. Но сравнивая Subversion и Git нельзя однозначно сказать, что Subversion хуже или то, что он устарел. Есть задачи в которых применим только Subversion и Git-у там не место.

timyr-lan комментирует...

git clone --depth 1 bla-bla-bla

Клонирование без истории.

just_noob комментирует...

Snv это не машина. Это телега с лошадью. С ужасом вспоминаю мерджы.

Akademic комментирует...

Я бы сказал, что svn это машина.
Одна машина на всех. И все по очереди на ней катаются. Если кто-то сломал, то весь мир страдает.

А Git это автопарк, ну или вертолётная база с кучей этих вертолётов для каждого. И если кто-то уронит свой вертолёт, то остальные продолжат двигаться куда им надо.

Анонимный комментирует...

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

Хотя и так понятно - darcs-лучший, все остальные либо далеко-далеко позади (как сабвершн), либо достаточно близко (как гит), но один фик позади.

northbear комментирует...

Разделение доступа к частям проекта это не задача git'а, это задача сервера доступа. Владелец git'а должен лишь соответствующим образом организовать (логически разделить части репозитория). Прочитайте документацию например по gitolite.

Когда понимаешь принципы организации git'а, то он очень простой и даже очевидный. Но большинство не утруждают себя чтением документации. Им надо чтобы было как в CVS.

Subversion по этому принципу и построен. Поэтому большинство считают его простым. И кому-то даже кажется удобным....

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

А требовать от git'a простоту управления svn aka cvs, считается нормальным.
В конце концов такие попытки сделаны в mercurial и в bazaar'е. Но только когда их сравнивают c git'ом, они оказываются в полном пролёте.

Просто напрягитесь, и потратьте время на документацию. Вы ведь однажды это сделали, когда переходили на FreeBSD/Linux. Иногда надо свои мозги встряхивать... В случае со git оно точно того стоит.

GiNeR комментирует...

northbear, речь идёт не о том, что его трудно изучить и т.д. Речь о том, что есть области применения в которых возможности Git-а избыточны и сложность "интерфейса" не покрывается данными возможностями.