Извечная моя проблема: есть проект в репозитории, его экспорт лежит на боевом сервере, в репозиторий делают определённое кол-во коммиротв, и есть нужда обновить боевой сервер. Делать экспорт из репозитория и заливать всё на сервер заново занимает слишком много времени, а чек-аут слишком много места на сервере. Репозиторий не даёт встроенной возможности сделать экспорт только изменённых файлов. Я сделал своё решение: Экспорт файлов из Subversion от ревизии А до ревизии Б
Как я понимаю проблема в том что на сервере нет возможности истановить svn, и соответвенно svn update через шел не поможет?
Да это тоже одна из причин (не везде есть svn, не везде есть даже ssh).
Вторая причина: размер, занимаемым проектом, при checkout в два раза больше, чем при export проекта (т.е. без возможности сделать update), а при больших (по размеру) проектах, это ощутимо.
Да но для конфигурационных файлов (напр. где коннекшен к БД настраивается), при ситуации что какой-то разработчик перекомитил его (у меня много раз такое случалось), будет получаться что этот файл обновлен, и если обновение происходит без учета этого, то будет получаться что приложение перестанет работать.
А так идея хорошоя, я в свое время делал что-то похожее, но мы тогда использовали CVS, тегами я не очень понимал, и написал питон скрипт для выделения diff двух директорий (текущей и посленей запощеной на сервер). А за скрипт спасибо, уверен что пригодиться.
Загрузку файлов на сервер выполняет ответственный за это дело человек (в моём контексте, обычно я), и, по окончанию работы, он просто обязан мало-мальски проверить работает ли продукт. Тем более, можно разработать такой конфиг, что, он сам себя подстроит: по HTTP-Host или Server-Name определит настройки из массива или выберит нужный case, или поступит как Ruby on Rails проект – вобщем, это дело наживное.