Причины за / против использования SVN для развертывания? - PullRequest
4 голосов
/ 26 августа 2009

Итак,

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

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

Есть ли веские причины не использовать svn на рабочей машине? Риск безопасности, который я пропускаю?

Ответы [ 7 ]

5 голосов
/ 26 августа 2009

Я могу вспомнить пару вопросов:

  • checkout на сервере создаст ненужные .svn каталоги там
  • чтобы оформить заказ на сервере, пользователю необходимы права доступа как к SVN, так и к серверу

Это с моей головы - я уверен, что есть и другие.

4 голосов
/ 26 августа 2009

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

2 голосов
/ 26 августа 2009
  • дополнительная нагрузка на сервер
  • изменения в вашей рабочей среде подразумевают нарушение тех аспектов инфраструктуры, в которых вы работаете, и наоборот. Проблемы с одним нарушают другие.
  • проблемы управления ролями и разрешениями. Пример Нила о необходимости учетных записей svn и сервера является одним из примеров. Управление соответствующими средствами управления доступом к файловой системе - это другое (должна ли вся команда иметь разрешение на запись в рабочие каталоги?).

В двух словах, использование svn на сервере приводит к более тесной связи между dev и prod, что вызывает проблемы, которые не так отличаются от тесной связи между различными частями кода.

2 голосов
/ 26 августа 2009

Я думаю, что Svn для развертывания в порядке. Это просто, если на вашем сервере установлен клиент, и он имеет меньше шагов, чем export и rsync.

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

1 голос
/ 16 июня 2011

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

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

rsync -az --eclude="*.svn*" predeployfolder wwwlivefolder
1 голос
/ 26 августа 2009

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

Это именно то, что мы делаем с phc, и в результате вы можете получить доступ к файлам .svn . Но так как он с открытым исходным кодом, это не имеет значения.

Конечно, это можно исправить с помощью файлов .htaccess.

1 голос
/ 26 августа 2009

Первая мысль: в случае компрометации у вашего злоумышленника теперь есть доступ и к вашему исходному коду.

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