Попытка написать скрипт после фиксации subversion для экспорта PHP в общую папку

Я пытаюсь развернуть приложение PHP, используя скрипт subversion и post-commit. Я искал, как написать сценарий после фиксации, но я не могу заставить его работать.

Конфигурация: у меня есть папка svn, установленная на моем сервере (OVH) в homeX.XX/svn/test/

Мой скрипт после фиксации должен ЭКСПОРТИТЬ в homeX.XX/dev/

Я не знаю, как написать правильный путь при использовании

#!/bin/bash
mkdir dev
chmod 777 dev
svn export svn+ssh://[email protected]/homeX.XX/XXX/svn/test dev

в моем сценарии POST-COMMIT. Я искал ответы, но не нашел...


person Romain Bruckert    schedule 01.03.2011    source источник


Ответы (1)


Из документации SVN (здесь):

Репозиторий Subversion выполняет программы-ловушки с пустой средой, то есть переменные среды вообще не устанавливаются, даже $PATH.

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

Итак, в этом случае ваш скрипт будет выглядеть примерно так:

#!/bin/bash

# SVN-related variables
svnuser=XXXXX
svnhost=www.xxxx.com
svnpath=/homeX.XX/XXX/svn/test

# Local paths
exportpath=/homeX.XX/dev

# Make export dir if it does not exist
if [ ! -e "$exportpath" ]
then
    mkdir $exportpath
fi

# These permissions are very lenient! Are you sure you want this?
chmod 777 $exportpath

# Do the SVN export
export svn+ssh://$svnuser@$svnhost$svnpath $exportpath
person Chris B    schedule 01.03.2011
comment
Привет, Крис, спасибо, я уже наткнулся на этот скрипт, но не смог заставить его работать. Я знаю об абсолютной проблеме с путями, но в опубликованном вами сценарии я не понимаю, как ему удается ВХОДИТЬ в ssh ... У сценария psot-commit уже есть права, и ему нужно только указать имя пользователя в строка svn+ssh:... ? - person Romain Bruckert; 03.03.2011
comment
Вверх, не могу заставить это работать... не могли бы вы сказать мне, как я могу получить вывод ошибки? Мне повезет больше, если я узнаю, где он глючит... - person Romain Bruckert; 03.03.2011