LINUX.ORG.RU

Git и SVN

 , ,


1

3

На Лоре (и не только) нередко можно услышать что-то вроде: «SVN экскременты мамонта, используй Git (ну или Hg)».

Но объясните мне, какая логика стоит за такими высказываниями?

Ведь Git/Hg это распределенные VCS, а SVN — централизованная. Распределнные системы не лучше и не хуже централизованных — они просто разные.

Deleted

Последнее исправление: myLogin (всего исправлений: 1)

Логика в том что сейчас централизованные vcs особо и не нужны. А те кому они нужны таких вопросов не задают.

micronekodesu ★★★
()

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

barberry ★★
()

Отсуствие нормальной модели ветвления и работающего merge это не свойство централизованной системы, а свойство конкретно svn.

maxcom ★★★★★
()

Ну, на Лоре можно услышать и обратное высказывание, так-то. А еще есть мнение, что «SVN, Git, Hg и т.п. говно, Darcs крутяк».

Если серьезно, то разница далеко не только в централизации, а еще в работе с ветками и их мерджем. Тут ситуация немного другая по сравнению с «они просто разные».

lu4nik ★★★
()
Последнее исправление: lu4nik (всего исправлений: 1)

Ведь Git/Hg это распределенные VCS, а SVN — централизованная. Распределнные системы не лучше и не хуже централизованных — они просто разные.

Лучше. Намного. Почти по всем параметрам.

tailgunner ★★★★★
()

На Лоре (и не только) нередко можно услышать что-то вроде: «%SOMETHING% экскременты мамонта, используй %ANOTHER_THING% (ну или %YET_ANOTHER_THING%)».

Но объясните мне, какая логика стоит за такими высказываниями?

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

Virtuos86 ★★★★★
()

Распределнные системы не лучше и не хуже централизованных — они просто разные

Чушь какая. Во-первых, они обе прежде всего VCS независимо от архитектуры. Во-вторых, есть вполне объективные метрики по которым их можно сравнить.

И правда в том что VCS без возможности полной работы в offline, быстрого переключения между ветками и удобного редактирования истории в современном мире не нужна. Это из самого главного. А ещё SVN, несмотря на централизованность и иммутабельность, которые должны бы позволить ему быть эффективнее, медленнее git на репозиториях размера выше среднего в разы, на некоторых операциях на порядки. И не устану приводить в пример тот факт что в SVN чекаут репозитория FreeBSD занимает больше, чем чекаут git, при том что в git доступна, напомню, вся 25-летней история правок.

Последний юзкейс где SVN справляется лучше DVCS - работа с большими бинарными файлами, уже пофикшен соответствующей надстройкой к git. Итого, не осталось ни одной причины использовать SVN.

slovazap ★★★★★
()
Ответ на: комментарий от Deleted

в случае с SVN, если я не ошибаюсь, каждый твой коммит сразу должен отправиться в общий репозиторий, если нет сети, то, видимо, он не создаётся. В случае git и hg, ты можешь сколько угодно сидеть offline и делать отдельные коммиты, переключаясь между ветками. Когда появится возможность выйти в онлайн или просто желание отправить коммиты, ты отправляешь их для каждой ветки отдельно.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)

Ведь Git/Hg это распределенные VCS, а SVN — централизованная

Распределенная или централизованная не имеет значения. Главное удобство работы. Когда у тебя SVN ты не можешь переключится для хотфикса на ветку с релизными версиями, тебе придется выкачивать другую ветвь и открывать параллельную сессию в ide. Создание бранча в svn это копирование структуры проекта, а создание бранча в git это просто ветвление и дельты изменений от точки ветвления.

Еще кейс, в svn, над очень большой фичей один программер будут работать скорее всего без коммитов, или, если нужно шарить изменения с кем либо, он будет коммитить по кускам в основную ветку пытаясь не поломать чего либо, например тесты, а в git можно просто вести параллельную работу в соседней ветки, с регулярными коммитами и отправкой изменений на удаленный репозитарий, а когда будет уже все готового применить изменения к основной ветки.

anonymous
()
Ответ на: комментарий от grem

каждый твой коммит сразу должен отправиться в общий репозиторий

Это ограничение растёт как раз из

Отсуствие нормальной модели ветвления и работающего merge это не свойство централизованной системы, а свойство конкретно svn.

Ибо из SVN репо-тыквы ты уже ничего не сделаешь.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

у меня коллега, работавший только с svn (я использовал только git и hg), когда я ему рассказывал о преимуществах веток, почему-то проецировал на это привычки svn: ему мерещилось, что в все созданные кем либо локально ветки обязательно видны в общем дереве проекта.

grem ★★★★★
()
Ответ на: комментарий от grem

Ну это потому, что он дальше своего SVN и не ходил, а у них там только так и никак иначе.

Благо, сейчас не так часто его встретишь, только в бородатых шарашках. Каждый, кто захочет (впрочем, ему вряд ли дадут это сделать) апгрейднуть инфраструктуру, увидев этот адЪ из легаси и костылей над, поседеет и постарается забыть как страшный сон (но уже не сможет — увиденное не развидеть).

// В hg я только стащить, а в svn только стащить/толкнуть.

r3lgar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.