Использование CVS при разработке сайта
11:14, 5 декабря 2005
(
Web Development FreeBSD
)
Думаю, что не ошибусь, если скажу что рано или поздно при разработке сайтов возникает вопрос контроля версий, синхронизации, да и просто хранения и синхронизации последних изменений в файлах кода. А если еще и разработка ведется из разных мест, к примеру, с работы и из дома, а еще и разными людьми, дизайнером, кодером, то, безусловно, без CVS не обойтись. Что же такое CVS и с чем его едят? CVS - concurrent versioning system представляет собой систему контроля версий и позволяет иметь последний работающий вариант кода, позволяет вернуться на любой момент работающего кода, откатить изменения, редактировать "монопольно" и многое другое. Я покажу на своем примере как можно использовать CVS для разработки сайта. Первое что нам потребуется - это CVS сервер, представляющий собой удаленное хранилище сайта, в терминах CVS - репозитарий. В моем случае это сервер под управлением FreeBSD, в котором демон cvs будет запускаться через inetd, т.е. в момент обращения на порт cvs, в обычном состоянии cvs, таким образом, загружать систему своими процесссами не будет. Настройка cvs демона. Добавляем строку в /etc/inetd.conf cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver надо заметить, что cvspserver - номер порта, который определен в /etc/protocols, обычно это 2401, а опция --allow-root задает размещение репозитария, который будет создан в /home/cvsroot убедитесь что inetd в вашей системе запущен, и виден в процессах: ps -ax | grep inetd Следующим шагом мы проинициализируем наше cvs хранилище, так скть подготовим его для работы. cd /home cvs init -D /home/cvsroot ## проинициализируем хранилище Это создаст пустой репозитарий и заполнит его служебной информацией, успешным созданием мы будем считать наличие CVSROOT в /home/cvsroot. Следующим шагом нужно добавить пользователей, которые смогут подключаться и работать с репозитарием. Используюя утилиту htpasswd из комплекта apache сгенерируем md5 пароль для нового пользователя в файл /home/cvsroot/CVSROOT/passwd. В моем случае это nexus, с паролем pas$word: cd /home/cvsroot/CVSROOT Теперь мы сможем соединиться с сервером под именем nexus и создать новый модель в репозитарии. Для того что бы можно было использовать cvs сервер нам потребуется cvs клиент. Разрабатываю сайты под OS Windows, для меня удобно использовать бесплатный windows cvs клиент Tortoise CVS, который удобно встраивается в windows explorer в качестве плагина. Доступен по правому клику по папке в explorer. Нашей целью будет создание нашего сайта как модуля в репозитарии cvs. Задаем необходимые папаметры соединения с сервером: адрес сервера, имя пользователя, месторасположение репозитария и название создаваемого модуля, в моем случае rating - каталог с сайтом. В случае успеха у нас будет создан модуль в репозитарии, который мы сможем увидеть в шелле сервера /home/cvsroot/rating. Но это только создание модуля. Следующее, что нам предстоит сделать, это добавить в модуль содержимое, т.е. файлы, и подкаталоги. И это еще не все, для сохранения изменений нам необходимо "зафиксировать" исходные тексты, файлы, каталоги командой commit. где мы можем задать комментарий изменений, мол, пофиксили это, добавили то. Здесь стоит заметить, что commit - магическая команда, она не только фиксирует файлы, но и изменяет номера версий у измененных файлов, позволяя впоследствии сделать diff диаграмму изменений, и, в случае чего, откатиться до определенной версии файла, скажем, последней рабочей. Вот собссно и все что касается создания репозитария, при работе с исходными текстами сайта необходимо помнить, что все добавления и изменения необходимо каждый раз add content и commit, в противном случае мы имеем риск получить несинхронизированную копию где-нибудь в другом месте, из которого мы работаем. Получение самой свежей копии сайта для работы в другом месте, или на хостинге. Здесь возможно два варианта: В первом случае при помощи все того же Tortoise CVS мы выполняем получение свежей копии исходников через checkout. опции для checkout аналогичны опциям создания модуля. В дальнейшем работа аналогична вышеописанной, не забываем делать commit. Второй случай - синхронизация исходных текстов на самом хостинге, Заходим в шелл хостинга. обычно я использую отдельную копию cvs, и отдельную копию самого сайта. Ниже я приведу свой скрипт для синхронизации исходных текстов сайта на хостинге: ### -------------- checkout rating -------------------- export CVSROOT=:pserver:nexus@gate-vasil.it.group:/home/cvsroot Если все шаги выполнены правильно, то мы будем всегда без проблем и избыточного трафика (будут скачаны только обновленные компоненты) иметь самую свежую копию сайта в любом, нужном нам месте. Кроме того рекомендую выбрать для себя подходящего cvs клиента, и изучить advanced темы по использованию cvs, среди которых: * генерация changelog и многое другое! Желаю творческих успехов в создании нужных, красивых и удобных сайтов. Комментариев: 2 |
© Максим Прокопов 2005-2024 | О сервере |