Когда я переместил команду из CVS в SVN, почти все в офисе были в восторге: получить что-то близкое к наборам изменений было замечательно , больше не было бесконечных тегов до и после каждой проверки, и имелись некоторые смутно терпимые функциональность "переместить" была отличной. Варианты CVS для «перемещения» были ужасными и плохими, и SVN сделал недостатки достаточно маленькими, чтобы при необходимости переименовывать файлы. Нам удалось отбросить большинство наших пользовательских рецептов Makefile, потому что они больше не были нужны, SVN был намного лучше.
Не все пользователи привыкли к «каталогу как ветви» и «каталогу как теги» - теги были слишком изменчивыми, и ветви действительно не ощущались как отдельный трек разработки. (Эти пользователи были хорошими в CVS; я думаю, я был бы довольно расстроен, если бы кто-то поменял мой текстовый редактор на новомодную IDE, которая делает почти все лучше, но мои пальцы не знают.)
НО, SVN все еще чувствовал себя немного как темные века по сравнению с ярким новым блестящим миром мерзавцев. Я понимаю, что в SVN наконец-то появилась система отслеживания слияний, что очень помогло бы, но в последний раз я проверил, что у него все еще нет большой поддержки автономной работы, что является хорошей гигантской функцией от git.
SVN действительно ставит своей целью быть "CVS сделано правильно". Но это так далеко.
Я предлагаю проводить больше времени с мерзавцем. Вы можете создать что-то похожее на ваш центральный репозиторий, используя bare-репозиторий для git. Затем настройте учетные записи ssh для всех ваших разработчиков и начните.
Вы могли бы посчитать полезным назначить одного человека, чтобы «владеть» главным хранилищем (вспомните о Линусе Торвальдсе), но это может быть огромным бременем для одного человека (вспомните о Линусе Торвальдсе :). Этот один человек мог выполнить всю работу git pull
и исправить незначительные конфликты в локальном рабочем дереве, а затем git push
в пустом хранилище на сервере, чтобы все остальные извлекли его снова. Каждый разработчик может выполнять эту работу индивидуально, и, вероятно, каждый должен, но вам может быть полезно по административным причинам запускать все проверки в «главном дереве» через одного или нескольких опытных разработчиков.