Subversion для онлайн-проектов - PullRequest
2 голосов
/ 07 октября 2010

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

Я хотел бы знать, существует ли инструмент / способ, позволяющий автоматизировать синхронизацию между «живым» веб-сайтом и хранилищем Subversion. Было бы здорово иметь возможность как зафиксировать исправление ошибки в репозитории, так и в реальной версии (сейчас я вручную загружаю через ftp исправленный файл, а затем фиксирую его в хранилище subversion).

Я уверен, что это должно где-то существовать, но под каким именем? Какая настройка ему нужна?

Спасибо за ваш отзыв, A.

Ответы [ 3 ]

3 голосов
/ 07 октября 2010

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

#!/bin/sh

# Delete Old site
rm -R /var/www/website

# Export Repository
svn export --force file:///var/svn/website /var/www/website

# Make sure Apache Owns the website
chown -R www-data:www-data /var/www/website 

(кредиты этой ветке форума)

Сохраните это в файле с именем post-commit в каталоге hooks вашего репозитория и сделайте его исполняемым.

Если репозиторий и веб-сайт не находятся на одном сервере, вы хотите экспортировать их во временный каталог, а затем отправить его через ftp или scp

РЕДАКТИРОВАТЬ: нашел также этот Perl-модуль, который может выполнить эту работу: SVN :: Notify :: Mirror

2 голосов
/ 07 октября 2010

Обычно вы можете сделать это с помощью svn-репозиториев , особенно post-commit.

1 голос
/ 07 октября 2010
  1. Создайте рабочую копию (локальную копию) хранилища / веб-сайта на своем веб-сервере, выполнив команду svn. проверять, выписываться.
  2. вы можете настроить задачу в cron / планировщике (в зависимости от linux / windows). Задача может сделать SVN обновление в вашей рабочей копии. Это можно делать каждые несколько минут / часов, в зависимости от частоты ваших коммитов.
  3. Поручите вашему веб-серверу не отображать .svn dirs. В случае apache вы можете включить следующие строки в ваш httpd.conf (в IIS тоже должен быть способ, дайте мне знать, если это нужно для windows)
<DirectoryMatch \.svn>
   Order allow, deny
   Deny from all
</DirectoryMatch>

AliasMatch \.svn /non-existant-page
...