ловушка после фиксации, svn: E020024: ошибка при разрешении

Я использую VisualSVN Server для управления исходной папкой. Он установлен на машине с Windows XP и имеет доступ к сетевому диску.

На этом сетевом диске с именем W: я выполнил проверку папки следующим образом:

svn checkout https://server:443/svn/Project W:\Project --username=user --password=pass

Теперь я могу обновить эту папку с помощью этой команды:

svn update W:\Project

Проблема:

Я хочу добавить хук после фиксации, выполняющий эту команду:

svn update W:\Project

но когда я фиксирую, появляется эта ошибка:

At revision: 123
post-commit hook failed (exit code 1) with output:
svn: E020024: Error resolving case of 'W:\Project'

Любые идеи ? Я не знаю, хорошая ли это практика, моя цель - сохранить копию проекта на другом диске вне сервера svn и создать резервную копию.


person Elias Platek    schedule 04.04.2013    source источник
comment
Вы пытаетесь зафиксировать ту же рабочую копию, которую хотите svn update, с помощью хука после фиксации? Какой полный код ловушки?   -  person bahrep    schedule 04.04.2013
comment
Вместо этого вы можете использовать сервер непрерывной интеграции. Запуск TeamCity, Jenkins или Hudson (например) позволят вам сделать это (и многое другое ) без добавления перехватчиков в SVN.   -  person AlG    schedule 04.04.2013


Ответы (3)


Диск W: вероятно, не отображается в среде, в которой выполняется сценарий. Все сценарии ловушек выполняются без установленных переменных среды. Вам нужно будет явно указать имя сервера для общего файлового ресурса или подключить сетевой диск в вашем скрипте.

person jsumrall    schedule 04.04.2013
comment
Несопоставленная буква диска не из-за пустой среды. Это потому, что сервисы не отображают диски, как это делается при интерактивном входе пользователя в систему. - person alroc; 04.04.2013
comment
Подключенные диски назначаются для каждого пользователя и недоступны для встроенных учетных записей, таких как сетевая служба. - person bahrep; 04.04.2013

Итак, на самом деле можно обновить действие после фиксации. Проблема в том, что я пытаюсь сохранить свой репозиторий в сетевой папке. Учетная запись службы VisualSVN по умолчанию - NTAUTHORITY\NetworkService, которая не может получить доступ к моему диску. Итак, я сменил пользователя на сетевую учетную запись, и теперь она работает нормально.

person Elias Platek    schedule 04.04.2013

Используете ли вы ту же рабочую копию, которую хотите обновить с помощью скрипта ловушки после фиксации?

Вы не можете svn update ту же самую рабочую копию, над которой работаете, с помощью ловушки после фиксации. Это должна быть отдельная рабочая копия. Вы можете использовать вместо этого команду svn export из svn update.

person bahrep    schedule 04.04.2013
comment
Вы правы насчет обновления, которое не может быть выполнено с помощью хука post commit. Но я пробовал использовать экспорт, и у меня точно такое же сообщение. Вроде недоступна сетевая папка ... Редактирую свой вопрос - person Elias Platek; 04.04.2013