Subversion: настройка удаленного репозитория и запуск моего сайта с него? - PullRequest
1 голос
/ 02 июня 2010

Я новичок в SVN и экспериментировал с ним локально на моем тестовом сервере Dreamhost (с функцией Subversion «одним щелчком мыши»).

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

Правильно ли я считаю, что могу создать репозиторий в корне моего сайта (который содержит все файлы), а затем, когда я разрабатываю новые функции и запускаю коммит, это обновит мой сайт? Это правильный рабочий процесс для такого рода вещей?

Если это так, есть ли стандартный способ настройки такого типа на моем удаленном сервере?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 02 июня 2010

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

Нечто подобное, безусловно, выполнимо. Чтобы получить правильную терминологию, в Subversion у вас есть «хранилище», которое находится на вашем сервере Subversion. Вы никогда не трогаете сам репозиторий, кроме как косвенно, выполняя операции с использованием клиента SVN. Вы можете «проверить» несколько «рабочих копий» хранилища (или их подмножество), чтобы получить доступ к самим исходным файлам. Чтобы добиться того, о чем вы просите, вы должны создать рабочую копию на своем компьютере разработчика и внести в нее изменения. Когда вы удовлетворены, вы «фиксируете» их в своем хранилище. В вашей производственной папке вам придется создать еще одну рабочую копию того же хранилища. Вам необходимо явно запустить «svn update» в этой рабочей копии, чтобы применить к ней последние изменения. Изменения не распространяются автоматически на все рабочие копии в коммите.

Если вы еще этого не сделали, вам следует потратить время на чтение книги подрывной деятельности . Это чрезвычайно ценный ресурс для подрывной деятельности и принципов контроля версий в целом.

2 голосов
/ 03 июня 2010

Чтобы автоматизировать обновление корня сайта, используйте ловушку после фиксации .

Хуки после фиксации запускаются после успешной фиксации набора изменений в репозитории SVN. Поэтому, возможно, ваш хук после фиксации может инициировать ОБНОВЛЕНИЕ SVN в корне сайта.

1 голос
/ 03 июня 2010

Оба предыдущих ответа являются хорошей информацией. Но есть пара вопросов, которые я подумал представить. Если вы придерживаетесь идеи post-commit-hook, я бы посоветовал сделать скрипт достаточно умным, чтобы развертывание выполнялось только тогда, когда вы этого тоже хотите. Выполнение развертывания сценария для каждого коммита будет очень ограничительным и заставит вас отказаться от многих преимуществ использования контроля версий.

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

Настройка системы производства в качестве локальной рабочей копии и использование SVN UPDATE не имеют проблемы с развертыванием коммитов, которые могут не быть готовым к развертыванию в производство, но страдает от того, что не является автоматическим. Чтобы решить эту проблему, вы можете создать сценарий, который периодически запускается в производственной системе, который проверяет хранилище практически так же, как это делает система непрерывной интеграции, например Crusie Control или Team City, и периодически проверяет хранилище на наличие нового коммита, а затем выполняет update.

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

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