Ошибка после фиксации в Visual SVN Server

Я добавил на свой Visual SVN Server обработчик пост-фиксации, который обновляет мою корневую веб-папку. У меня в фиктивном крючке есть следующее:

"%VISUALSVN_SERVER%bin\svn.exe" update "D:\wamp\www\xix" --username xone --password xxx

Выполнение этого из командной строки работает, но когда я фиксирую изменения в своем проекте из клиентской программы, я всегда получаю сообщение об ошибке:

Ошибка: ошибка после фиксации (код выхода 1) с выводом: svn: E720005: ошибка при разрешении случая 'D: \ wamp \ www \ xix'

Почему это? Спасибо за вашу помощь!


person user2209901    schedule 06.08.2013    source источник
comment
D: - это подключенный сетевой диск? Сетевые диски назначаются для каждого пользователя и недоступны для учетных записей служб. VisualSVN Server по умолчанию работает под учетной записью NETWORK SERVICE.   -  person bahrep    schedule 06.08.2013
comment
Также убедитесь, что вы запускаете клиентскую программу с правами администратора.   -  person Sameer Singh    schedule 06.08.2013
comment
@SameerSingh, ты ошибаешься, в данном случае это не имеет никакого значения.   -  person bahrep    schedule 06.08.2013
comment
Хммм, мне было весело, когда клиент не работал как администратор, но я думаю, что вы правы. Прости!   -  person Sameer Singh    schedule 06.08.2013


Ответы (1)


Несколько вещей:

  • Хук после фиксации не имеет доступа к рабочему пространству вашего клиента.
  • Когда вы запускаете команду из командной строки, вы другой пользователь, чем пользователь сервера, выполняющий команду. Номер ошибки E720005 обычно указывает на пользователя, у которого нет разрешения на обновление файла в своем рабочем каталоге. Этот пользователь может иметь разрешение на чтение из репозитория, но не обязательно на запись в рабочий каталог.
  • Многие переменные среды намеренно изменяются при выполнении ловушки. Возможно, ваши переменные среды, такие как %VISUALSVN_SERVER%, не такие, как вы думаете.
person David W.    schedule 06.08.2013
comment
@ user2209901 - Когда кто-то предлагает решение для Stackoverflow, хорошо принять его ответ, щелкнув галочку слева от этого сообщения. Он приносит человеку, ответившему на ваши вопросы, очки репутации, которые затем можно использовать, чтобы произвести впечатление на малышек. - person David W.; 07.08.2013