Если мы экспортируем ваши изменения в наш сервер разработки, экспорт не удалит файлы на сервере.
Ваш скрипт развертывания должен просто удалить ранее экспортированную папку и создать новый экспорт. Конечно, несколько секунд простоя не проблема для сервера разработки?
Если время простоя является проблемой (например, ваш проект очень большой и экспорт занимает много времени), вы все равно можете мгновенно развернуть следующую ревизию, используя жесткие ссылки или символические ссылки.
Например, вы можете разместить свой проект в /var/www/myproject.latest
, что на самом деле является жесткой ссылкой на /var/www/myproject.r123
. После экспорта новой ревизии 124
вы мгновенно обновляете жесткую ссылку с помощью этой команды:
ln -f /var/www/myproject.r124 /var/www/myproject.latest
(Я предположил, что ваш проект размещен на сервере Linux, но вы также можете использовать [NTFS junction] [1] точки в Windows.)
Поэтому я подумал о том, чтобы сделать каталог на сервере рабочей копией, но любой разработчик должен отправлять свои изменения в хранилище только для тестирования своих изменений.
svn export
имеет одно и то же ограничение, поэтому я не вижу, как оба подхода отличаются в этом отношении. Если все разработчики должны использовать один и тот же тестовый сервер, то в любом случае это хорошо: если разработчик A ломает тестовый сервер, тогда разработчик B хочет иметь возможность просмотреть журнал SVN, чтобы увидеть, что произошло!