Git vs Subversion - плюсы и минусы [закрыто]

11

Я уже много лет пользуюсь SVN, и не могу сказать, что я полностью этому рад. Несколько дней назад мой партнер попросил меня взглянуть на git, сказав, что «он имеет лучшую производительность, легче объединяет и разветвляет».

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

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

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

С другой стороны, наличие распределенной платформы звучит как головная боль, а как вы можете контролировать доступ? у вас есть один центральный репозиторий, откуда вы загружаете и обновляете?

Спасибо, что пролили немного света на эту проблему.

Адам Бенаюн
источник

Ответы:

15

Вы пытаетесь сравнить два инструмента с точки зрения системного администратора или программиста? Если вы смотрите на это с точки зрения программистов, возможно, вам следует спросить об этом в stackoverflow. Или, что еще лучше, возможно, вам стоит взглянуть на то, что уже спрашивали о " git svn "

Особенность git и svn в том, что это не предложение. Вы можете запустить SVN-репозиторий, и ваши разработчики могут использовать git-svn для взаимодействия с ним, если они считают, что git - лучший инструмент в конкретном случае.

Zoredache
источник
2

На самом деле нет никаких плюсов в подрывной деятельности над git. Пока git распространяется, каждый может работать из центрального репозитория, используя удаленные ветви отслеживания. Git работает быстрее, более гибок, и объединение действительно работает. Кроме того, вы можете реально работать в автономном режиме, тогда как с помощью Subversion вы не можете фиксировать изменения, если у вас его нет. Вы можете легче работать с отдельными коммитами в git по сравнению с тем, что один ID фиксации представляет состояние репозитория в SVN.

Доступ контролируется либо учетными записями пользователей / групп на git-сервере (вам нужно инициализировать исходный репозиторий с помощью 'git init --bare --shared' для соответствующих прав доступа), либо с помощью ключей ssh. Очень детальный контроль доступа может быть настроен с помощью «gitosis», который является сторонним дополнением.

Чтобы привыкнуть работать с git, нужно привыкнуть к svn (мы только что прошли через это в моем офисе), но git намного мощнее.

Если вам нужно хорошее прохождение, зайдите на http://progit.org - это полная онлайн копия книги с открытым исходным кодом.

Аарон Браун
источник
SVN может обрабатывать большие файлы, чем Git
Джошуа
Я не знал, что у git максимальный размер файла - какой предел?
Аарон Браун
2
В основном, так как Git хранит историю с каждой рабочей копией, большой, сильно отредактированный файл займет много места. Если большой файл практически не меняется, это нормально
Фил Миллер
Я бы сказал, что комментарий Джошуа вводит в заблуждение. Файлы, которые были извлечены, имеют одинаковый размер как для SVN, так и для git. Что произойдет, так это то, что, поскольку git хранит копию информации репо локально, общее дисковое пространство, необходимое для всех файлов, плюс история репо будет увеличиваться при редактировании файлов, но для SVN это пространство фиксировано (поскольку история репо не хранится локально).
Уолтер
1

В моей команде мы находимся в процессе изменения наших систем управления версиями с SVN на GIT. У Git чуть более сложная форма обучения, поэтому я начал с ней знакомиться, а затем учил разработчиков, как ее использовать. Им необходимо знать все преимущества систем с распределенным управлением версиями: несколько веток, отсутствие центрального репозитория, скорость и т. Д.

Как и у вас, у нас была система для развертывания наших сайтов, поэтому мы держим что-то вроде центрального сервера git, на котором изменения извлекаются и передаются с машин разработчиков. Наши сайты извлекают изменения с этого «центрального сервера», а остальная часть процесса развертывания аналогична той, что использует svn.

Мы старались не смешивать svn и git-репозитории, начиная миграцию наших второстепенных сайтов и создавая новые git-репозитории для основных сайтов, как будто они были новой версией. Доступ управляется с помощью ключей ssh. Также мы используем gitweb в качестве веб-интерфейса (наша система SVN основана на http)

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

hdanniel
источник