SVN Post-Commit для обновления рабочей копии, когда рабочая копия находится на сетевом диске - PullRequest
0 голосов
/ 23 марта 2012

Я работаю в довольно новой компании, занимающейся веб-разработкой, и в настоящее время мы тестируем установки Subversion для внедрения системы управления версиями.Одна из функций, которую нам нужна система управления версиями, - это обновление сервера разработки отредактированным файлом после его фиксации.

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

Однако это ошибки при коммите.Вот мой каталог тестирования рабочей копии, на который ссылается файл post-commit.bat:

SET WORKING_COPY=Z:\testweb

Это, однако, приводит к ошибке ...

post-commit hook failed (exit code 1) with output: svn: Error resolving case of 'Z:\testweb'

I 'Я уверен, что это потому, что сервер не тот же пользователь, что и я, и, следовательно, не имеет общего ресурса, который мне нужен, сопоставленный с "Z" - я просто не знаю, как обойти это.Кто-нибудь может помочь?

ОБНОВЛЕНИЕ: Чем больше я смотрю на эти проблемы, тем кажется, что реальным решением проблемы является использование CI Server для выполнения того, что я пытаюсь выполнить.В настоящее время я смотрю на TeamCity и на то, что он может сделать для нас.

1 Ответ

0 голосов
/ 23 марта 2012

Не делайте этого через post-commit hook.Если вам когда-нибудь удастся добиться успеха, вы заставите человека, который выполнил обязательство, ждать, пока обновление не будет завершено.Вместо этого я рекомендую вам использовать Jenkins , который является механизмом непрерывной сборки.

Возможно, вам не нужно ничего строить.В конце концов, если вы используете PHP или JavaScript, компилировать нечего.Тем не менее, вы все равно можете использовать Jenkins, чтобы сделать обновление для вас.

Я не могу вдаваться в подробности, но одна из вещей, которые вы можете сделать с Jenkins, - переопределить его рабочий каталог.Вы можете сделать это, нажав кнопку Advanced при определении задания, и она спросит вас, где вы хотите рабочий каталог.В этом случае вы можете указать рабочий каталог вашего сервера.

Одна из вещей, которые вы можете сделать с Jenkins, - это автоматически запускать тесты или, возможно, выполнять более плавное обновление.Например, вам может потребоваться перезапустить веб-сервер, когда вы измените несколько файлов, или вам нужно убедиться, что если вы изменяете 100 файлов, все они будут изменены сразу, или ваш сервер не будет стабильнымгосударство.Вы можете использовать Дженкинс, чтобы сделать это тоже.И, если возникнут какие-либо проблемы, вы можете попросить Дженкинса отправить электронное письмо лицу, ответственному за сервер, о том, что обновление сервера не удалось.

Дженкинс прост в настройке и использовании.Вы можете скачать его и запустить Jenkins за 10 минут.Создание работы в Дженкинсе может занять у вас еще 15 минут, если вы никогда раньше не видели Дженкинса и не знали, как это работает.

...