Где должен быть репозиторий Subversion?

Должно ли это быть на серверах разработки или на сервере Subversion?

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

8 ответов

Решение

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

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

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

В дополнение к тому, что другие люди упоминали о регулярной загрузке серверов dev, есть и аргумент производительности. Если кто-то занимается разработкой или тестированием на сервере разработки, вы не хотите, чтобы это замедляло работу сервера SVN для извлечения или синхронизации. Также, если вы решите запустить что-то вроде непрерывной интеграции на одном и том же сервере, вам не нужно, чтобы все ваши модульные тесты выполняли регулярные операции dev/test на этом сервере.

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

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

Мы используем чистый, чистый лист для наших репозиториев. В частности, мы используем Slicehost для нашего основного хранилища.

Мы начали с фрагмента 256 МБ, а затем обновили до 512 МБ. Slicehost великолепен, потому что вы знаете, что у вас есть полностью чистый сервер для начала, и можете создавать все, что вам нужно, самостоятельно.

Статьи Slicehosts являются первоклассными.

Наш сервер репо выглядит так:

И это все. Не много накладных расходов.

Изменить: не пытается продать Slicehost здесь, так что, если это не кошерно, дайте мне знать!

Отредактируйте еще раз: Джеймс делает отличное замечание о размещении закрытого кода на стороннем сервере. При выборе хоста для такой вещи, безусловно, следует проявлять особую осторожность. К сожалению, у многих компаний просто нет ресурсов для создания и управления серверами в доме, и именно там мы оказались до выбора хоста для нашего кода.

Ящики для разработки, по определению, будут разбиты и упадут. Это идет с территорией!

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

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

Woops. Мы также отслеживаем дефекты на той же коробке, но по той же причине.

Я держу свой сервер разработки, на котором также работает Trac, Apache, на котором размещается автоматически обновляемая копия проекта JavaDocs, и платформа сборки CI. Проект должен иметь достаточно эпические пропорции, чтобы требовать выделенный сервер Subversion.

Однако имейте в виду, что очень важно сохранять резервные копии вашего хранилища Subversion на другом компьютере в другом месте - ваш хранилище - ваш самый ценный ресурс!

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

Другие вопросы по тегам