Как перенести изменения с SVN-сервера на удаленный веб-сервер - PullRequest
2 голосов
/ 29 июня 2011

Проблема

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

Текущая ситуация

В настоящее время удаленный сервер вызывает обновление каждыепять минут.Однако я бы предпочел, чтобы трафик был входящим на веб-сервер, а не на исходящий.Сервер SVN находится на коробке Windows 2003.Веб-сервер представляет собой коробку OpenSUSE 11.4.

Предыдущие поиски SO

У меня есть вопрос SO, но кажется, что вы, ребята, любите git, и большинство вопросов касаются этого программного обеспечения.

Спасибо заранее.Вы, ребята, великолепны.

1 Ответ

1 голос
/ 12 августа 2011

Я подробно остановлюсь на комментарии Рупа (так как он спросил!).

Похоже, у вашего удаленного сервера (назовем его сервером B) есть рабочая копия раздела репозитория.Вы хотите, чтобы ваш репозиторий, расположенный на другом сервере (сервер A), запускал команду svn update на сервере B.

Есть несколько способов сделать это (например, иметь извлеченную рабочую копию на сервере A с помощью rsync).этой рабочей копии, отправленной на сервер B, что позволяет вам также маскировать каталоги .svn).Но, как говорит Руп, самый простой способ - установить простую зацепку после фиксации SSH на сервер B и выполнить обновление.На сервере A (при условии, что вы установили author_keys между серверами A и B):

#!/bin/bash
ssh serverB 'svn update /path/to/working/copy' > /dev/null
...