Нашим программистам приходится часто сохранять в SVN снимки состояния различных сайтов, расположенных на нашем сервере (FreeBSD). Эти снимки должны включать в себя файлы сайта и дамп его БД (MySQL). Если с файлами всё более менее просто, то вот делать дампы — занятие слегка утомительное (из-за чего программисты часто про них забывают). И вот родилась такая глупая мысль: было бы здорово, если бы удалось разместить в домашней папке сайта (конечно же недоступной через веб) особый файл, при чтении которого возвращался бы текстовый дамп БД. Тогда бы программист, скачивая с сервера файлы сайта, получал бы и дамп.
Поиск в поисковиках готовых решений (например для создания файлов, при чтении которых вызывался бы скрипт) ничего не дал (может не так искал?). Следующая мысль — написать свой драйвер устройства, а в папки сайтов класть символическую ссылку на него. Но тут возникает трудность: БД на сервере много, как драйверу узнать, какую из них дампить? Записать в устройство имя БД перед чтением — не вариант, по понятным причинам. Делать своё устройство для каждой БД тоже не самое удобное решение.
Может у кого-то есть светлые мысли, как решить задачку?
Обновление. Видимо надо пояснить прямо тут. Это не производственная задача. Это скорее интерес — а можно ли сделать что-то подобное? Если получится — хорошо, удастся внедрить — ещё лучше. Поэтому альтернативы вроде «напиши скрипт, который будет делать это по крону», не интересны, т. к. слишком скучны.
Вместо скачивания файлов вручную и, тем более, написания своих файловых систем, необходимо написать скрипт (на любом нравящемся вам языке, я бы выбрал bash), который будет соединяться с сервером по ssh, делать дамп БД, и коммитить все нужные файлы в SVN. Сам будет делать всю работу, а не вручную. Тогда проблема «забыл закоммитить файл» исчезает автоматически.
Автоматический коммит в данном случае вообще зло. Потому что его не получится снабдить разумным комментарием с описанием изменений. В нашем случае коммит должен делаться исключительно руками и только тогда, когда программист решит, что файлы готовы для коммита.
Ну и со скриптами тоже не всё радужно. Не все программисты, увы, работают в никсах.
Странные вещи Вы говорите. как минимум TFS (Team Foundation Server) имеет возможность установки правила, что check-in изменений в коде на TFS сервер не будет выполнен без успешной компиляции перед выгрузкой изменений на сервер, понятное дело, оставив логику на программиста.
Более того, как, по Вашему работают автоматические сборки проектов и автотестрование?
И в третьих, что мне в командной строке мешает добавить комментарий вроде -m «crontab auto commit»?
описание изменений тоже можно прикрутить при желании, но обычно все «изменения» делаются и проверяются на тестах
Где я говорил про автоматический коммит? Атвор вопроса пишет, что они заливают бекапы сайтов в SVN вместе с дампом БД (первый раз слышу про бекап в SVN, ну да ладно). Я предложил вместо изобретения новых файловых систем автоматизировать эту работу, прописав все нужные действия в скрипте. Это не автоматический, а как раз самый на то что ни есть ручной коммит.
Описание коммита может как вводить программист, так и генерироваться из времени и названия сайта.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.