Хук после фиксации SVN не выполняет файл

Я создал exe-файл, который будет печатать для консоли первый и второй аргументы, которые он получает.

В перехвате SVN после фиксации я написал:

PATH_TO_FILE\print.exe "%1" "%2"

когда я проверяю, он застревает.

% 1 - это ПУТЬ
% 2 - это номер редакции

ИЗМЕНИТЬ

Ответ на мой вопрос заключается в том, что исполняемый файл должен находиться в каталоге «bin» сервера SVN, а не в папке хуков репозитория.

Спасибо всем, Одед.


person Oded    schedule 10.11.2009    source источник
comment
@Oded: вы добавили много дополнительных деталей в комментариях к ответам. Вы можете сделать вопрос яснее и лучше, отредактировав его, чтобы добавить детали.   -  person JXG    schedule 04.02.2010


Ответы (3)


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

echo "%1" "%2" > c:\temp\log.txt
person Peter Lindqvist    schedule 10.11.2009
comment
В конце концов я захочу выполнить сценарий из exe-файла. Поэтому мне нужно запустить файл. - person Oded; 10.11.2009
comment
Я знаю, что это так, но попробуйте начать с самого простого из возможных сценариев. - person Peter Lindqvist; 10.11.2009
comment
Я пробовал то, что ты сказал. Он создает текстовый файл. Я пробовал что-то вроде: echo% 1% 2 ›c: \ log.txt print.exe% 1% 2 (отправка 2 аргументов). и он все еще застревает. фиксация не завершается. окно фиксации остается открытым. - person Oded; 11.11.2009
comment
Итак, проблема с print.exe, это какая-то программа, которую вы создали сами? - person Peter Lindqvist; 11.11.2009
comment
да. Конечно, я создал новый exe-файл, который просто записывает в файл (как и ваше предложение). и он все еще застревает. - person Oded; 11.11.2009
comment
это запуталось. Боюсь, тогда я не смогу тебе помочь. - person Peter Lindqvist; 11.11.2009

О какой ОС идет речь? Если это Windows, я не думаю, что вам следует заключать параметры в кавычки (").

Что такое PATH_TO_FILE? А переменная окружения? Какая это ценность? Вы проверили, что в нем нет последней обратной косой черты? Вы перезапустили после изменения переменной окружения. Это переменная среды на уровне системы или пользователя. Помните, что если вы запускаете сервер SVN как службу, он находится под другим пользователем, поэтому переменная env может не быть определена для этого пользователя. Почему бы вам просто прямо сейчас не указать полный путь, просто чтобы проверить, не имеет ли он никакого отношения к неверной переменной среды.

Вы говорите "застревает", вы получаете сообщение об ошибке? Что именно происходит? Некоторые подробности того, как это не удается, могут помочь.

Если вы используете Windows, вы можете перенаправить любые ошибки в файл, выполнив следующие действия:

PATH_TO_FILE\print.exe %1 %2 > c:\output.txt

Это простой сервер SVN или вы используете сервер visualSVN?

person Simon P Stevens    schedule 10.11.2009
comment
Я использую VisualSVN Server. работает на сервере Windows. ПУТЬ к файлу exe: D: \ print.exe. Окно фиксации ничего не делает. Он не показывает ошибки или что-то в этом роде. ни полное сообщение, ни ошибка. - person Oded; 10.11.2009
comment
Это почти звучит так, как будто фиксации никогда не происходит, что может быть источником вашей проблемы. Хук никогда не выполняется, если фиксация никогда не попадает в репозиторий. - person Peter Lindqvist; 10.11.2009
comment
Да, то, что говорит Питер, возможно. Если убрать крючок, будет ли тогда коммит работать? - person Simon P Stevens; 10.11.2009
comment
если PATH_TO_FILE - это d: \ print.exe, тогда ваша команда разрешит D: \ print.exe \ print.exe, что явно неверно. Проверьте переменную среды. - person Simon P Stevens; 10.11.2009
comment
если сниму крючок. фиксация действительно имеет место. PATH_TO_FILE не является переменной среды. Я просто написал это для примера. ради нашей проблемы. Я кладу exe-файл в D:. следовательно, его путь - d: \ print.exe (не обращая внимания на имя файла) - person Oded; 10.11.2009
comment
@Oded: Ах, в этом есть смысл. Прости. Вы пробовали упростить его, как предлагает Питер в своем ответе. Разбейте его на что-нибудь очень простое и сначала убедитесь, что он работает именно так. - person Simon P Stevens; 10.11.2009
comment
Тогда я боюсь, что не смогу тебе помочь. У меня слишком мало знаний о реальной реализации сервера. - person Peter Lindqvist; 10.11.2009
comment
Спасибо за помощь :) Если что-то придумаю, выложу. - person Oded; 11.11.2009

Это должна быть среда Windows, поскольку я вижу print.exe. Я просто повторяю аргументы, как показано ниже.

echo %1 %2 >&2

Кажется, это без проблем выводится в командную строку.

person publicRavi    schedule 26.03.2010