Хосты после фиксации в Dreamhost не работают - PullRequest
0 голосов
/ 02 марта 2011

Я просмотрел много статей в Интернете, но ни одна из них не дала ответа.Я запускаю настройку, где:

У меня есть веб-сайт, на котором будет запускаться копия магистральных файлов. С этим веб-сайтом связана папка svn. У меня есть локальная среда тестирования wampserver / mamp на моем mac, tortoise svn onмой компьютер

Итак, у меня есть проверка хранилища, я делаю свои изменения, и когда я выпускаю - я фиксирую файлы.

Я бы хотел автоматическое обновление при коммите в репозиторий svn - эта вики объясняет, как это сделать: http://wiki.dreamhost.com/Subversion#Automatic_Post-commit_Checkout

к сожалению, это чревато проблемами.После того, как у меня были мои cgi-папки и мой обновленный хук post-commit sortedm, я получал код выхода 255. После того, как я преобразовал cgi и хук в unix и повторно загрузил, у меня был код выхода 1.

Я снова изменил chmod, и нет, я не получаю никаких ошибок.И, к сожалению, dreamhost не обновляет файлы на моем живом сайте.

Мой файл ловушек выглядит так:

post commit:

        #!/bin/bash
        wget --http-user=username --http-passwd=password -qO - http://website.com/cgi-bin/pri/do_update.cgi     

и мой do_update.cgi:#! / bin / sh

    # disable filename globbing
    set -f

    echo "Content-type: text/plain; charset=iso-8859-1"
    echo

    echo /usr/bin/svn update /home/username/website.com

Google возвращает много-много страниц с этой проблемой, и если я вдруг не научусь компилировать программу на C, я не смогу это сделать.

Любая помощь приветствуется и, наконец, выложит хороший ответ в Интернете для всех остальных ...

Ответы [ 2 ]

1 голос
/ 24 мая 2013

после таких же неприятностей, как и вы, я наконец-то получил svn post-commit hook, работающий на Dreamhost .Оба моих файла идентичны вашим, за исключением того, что в вашем скрипте cgi у вас есть дополнительное «echo».

Разрешения для моего файла cgi: -rwxr-xr-x (это 755, если я правильно помню)

Не забудьте о настройке .htaccess / .htpasswd для вашего каталога / cgi-bin /:

Вот что такое мой .htaccess вкаталог / cgi-bin / выглядит следующим образом:

AuthName "Dialog prompt"

AuthType Basic

AuthUserFile /home/username/x.com/cgi-bin/.htpasswd

Require valid-user

Имейте в виду, имя пользователя / пароль для вашего 'wget' в файле cgi-script - это НЕ ваш svn пользователь / пароль, а пользователь /передать настройки для каталога cgi-bin специально через этот файл .htaccess (также НЕ ваше имя пользователя / пароль DH).Я не уверен, где svn user / pass вступает в игру, возможно, только при начальной проверке (через bash).

Вчера вечером я исследовал SO, чтобы выяснить, как «перезагрузить» мой SVN (он перестал запускать ловушку после фиксации, но не сообщал об ошибках).Для исправления этой проблемы мне пришлось войти в DH через bash, а затем вручную запустить svn up.Запустив эту команду в каталоге моего сайта X.com, SVN наконец-то сообщил об ошибке («файл уже существует», а svn не перезаписывал его).Чтобы исправить это, я просто повторил команду обновления: svn up --force.Whammy !, мой svn запустил полное обновление в моем веб-каталоге, и, наконец, у меня были последние файлы на моем веб-сервере.Вот так!

Если я правильно помню (после того, как этот пост-коммит-хук работал правильно в течение нескольких месяцев), мне пришлось НАЧАЛЬНО сделать svn checkout в моем веб-каталоге через bash.Как только эта начальная проверка была выполнена, хук svn update работал правильно.(К вашему сведению, я использую черепаху для всех моих обычных коммитов)

Удачи всем, кто пытается запустить post-commit-hooks на DH.Это может быть трудно настроить, но в конце концов, оно того стоит!

: - P

0 голосов
/ 14 июля 2011

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

Крюк:

svn.exe export https://myhostname/svn/project/trunk %WEBSITEDIR%\httpdocs\store --quiet --non-interactive --force --username user --password pass
...