Использование скриптов python в перехватах subversion в Windows
Вопрос
Моя главная цель - получить это встал и работает.
Мой хук вызывается, когда я выполняю коммит с помощью Tortoise SVN, но он всегда завершается, когда я добираюсь до этой строки:Python "%~dp0trac-post-commit-hook.py " -p "%TRAC_ENV%" -r "%REV%" || ВЫХОД 5
Если я попытаюсь заменить вызов скрипта Python любым простым скриптом Python, он все равно не сработает, поэтому я предполагаю, что это проблема с вызовом Python, а не с самим скриптом.
Я попытался установить переменную PYTHON_PATH, а также установить %PATH% для включения Python.
У меня запущен trac, поэтому Python работает на самом сервере.
Вот некоторая справочная информация:
Python установлен на сервере Windows, а скрипт вызывается с локального компьютера, поэтому
ЕСЛИ НЕ СУЩЕСТВУЕТ %TRAC_ENV% ВЫХОД 3
и
УСТАНОВИТЕ PYTHON_PATH=X:\Python26 ЕСЛИ %PYTHON_PATH% НЕ СУЩЕСТВУЕТ, ЗАВЕРШИТЕ 4
сбой, если я не укажу установить их на подключенный сетевой диск (то есть указать их на диски X и Y, а не на диски C и E)
- Скрипты Python могут вызываться из любого места командной строки с сервера независимо от диска поэтому переменная PATH должна быть установлена правильно
Похоже, проблема с вызовом скриптов python извне, но не уверен, как я собираюсь изменить разрешения для этого.
Заранее благодарю.
Решение
Примите во внимание следующие моменты:
- сопоставления сетевых дисков и
subst
сопоставления зависят от конкретного пользователя.Убедитесь, что диски существуют для учетной записи пользователя под которой запущен svn-сервер . - скрипты subversion hook - это запускаться
без каких-либо переменных окружения
устанавливается по соображениям безопасности, даже
%path%
.Вызовите исполняемый файл python с указанием абсолютного пути, напримерc:\python25\python.exe
.