При закрытии подписчики были переданы в рассылку "Создание сайта. Уроки для начинающих и не только" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Доброго времени суток, уважаемые подписчики!
В данной статье я хочу рассказать Вам об использовании системы контроля версий, а именно CVS и об интеграции Делфи с CVS через эксперта Athlant. Статья была написана на основе собственного опыта использования CVS и Athlant.
Что такое CVS.
CVS - это система контроля версий. Используя ее, вы можете вести историю изменений ваших файлов с исходными текстами.
Например, иногда при определенном изменении в коде могут появиться ошибки, которые вы не сможете обнаружить в течение длительного времени. С помощью CVS вы легко можете обратиться к старым версиям, чтобы точно выяснить, что именно привело к ошибке. Иногда это сильно помогает.
Конечно, вы можете хранить каждую версию каждого файла, которые вы создаете. Это будет стоить Вам невероятного объема дискового пространства и большого труда. CVS хранит все версии файла в одном файле таким образом, что запоминаются лишь изменения между версиями.
CVS также поможет, если вы являетесь членом группы разработчиков одного проекта. Очень легко испортить чужие изменения, если только вы не крайне аккуратны. CVS решает эту проблему, изолируя разработчиков друг от друга. Каждый работает в своем собственном каталоге, а затем CVS объединяет законченные работы.
Почему именно CVS, можете спросить Вы? Ответ прост – это чуть ли не единственная бесплатная система контроля версий!
CVS, как и любая другая система контроля версий, состоит из двух частей: сервера и клиента. Сервер CVSNT можно скачать здесь, а визуального клиента WinCVS соответственно здесь
Скачиваем, устанавливаем – тут проблем не возникает. После установки сервера CVS в панели управления появится апплет CVS:
Запустим его и перейдем во вкладку Repositories, где нам нужно создать репозиторий для хранения наших проектов. Для этого нажимаем кнопку Add и в появившемся окне вводим физический путь к центральному репозиторию и его логическое имя:
Базовая настройка сервера CVS сделана. Настала очередь клиента. Заходим в Admin|Preferences…
На вкладке General указываем необходимые данные для подключения к серверу:
где Authentication – метод аутентификации на сервере (у меня работал только sspi)
Path – имя репозитория на сервере (который мы создали ранее. Обратите внимание, что это не физический путь на сервере, а логическое имя).
Host address – имя компьютера, где установлен сервер CVS
User name – Ваш сетевой логин.
Теперь необходимо подключится к серверу. Для этого выбираем команду Admin|Login вводим там пароль (который сетевой). Если все было настроено правильно, то WinCVS в логе должен написать примерно следующее:
CVSROOT: alexey@ora-test2:/cvs (sspi authentication) cvs -z9 -d :sspi:alexey@ora-test2:/cvs login Logging in to :sspi:alexey@ora-test2:2401:/cvs ***** CVS exited normally with code 0 *****Примечание. Команду cvs -z9 -d :sspi:alexey@ora-test2:/cvs login можно конечно выполнить и из командной строки, но согласитесь, что использование визуального клиента намного приятнее и доставляет большего удовольствия :)
Настала очередь заняться нашим проектом. Для начала придайте
«товарный» вид проекту (а именно удалите все bak-файлы, dcu модули и
т.п. Помните, что все системы контроля версий не очень хорошо работают
с бинарными файлами, поэтому сохраняйте все свои формы в текстовом виде). Указываем в WinCVS папку с подготовленным проектом (кнопка Change location на панели управления). В браузере отобразится список файлов и вообще вся структура файловой системы проекта. В рассматриваемом примере будет четыре файла (стандартный небольшой проект) – dpr, pas, dfm, res. Для отправки проекта на сервер нужно выполнить команду Remote|Import module. В появившемся окне Вы должны проконтролировать, что каждому файлу WinCVS присвоил
«правильный» тип:
В случае неверное определения типа Вы можете вручную указать нужный тип (кнопка Edit). Убеждаемся, что все правильно и нажимаем Continue. В появившемся окне можем изменить имя проекта, назначить вендора и стартовую версию релиза. Нажимаем OK и проект у нас на сервере.
Filtering 'G:\Projects\testcvs\'... cvs -z9 import -I ! -I CVS -W "*.res -k 'b'" -m "no message" testcvs avendor arelease (in directory G:\Projects\testcvs) N testcvs/POPDaemon.dpr N testcvs/POPDaemon.res N testcvs/Unit1.dfm N testcvs/Unit1.pas No conflicts created by this import ***** CVS exited normally with code 0 *****
Зайдем на сервер и убедимся, что проект нормально импортировался:
Если над проектом работает несколько разработчиков, то всем другим нужно получить проект именно с сервера, а не взять у первого разработчика. Для получения проекта с сервера нужно выполнить команду Remote|Checkout module
В первом поле указываем имя проекта (которое мы указывали при отправке проекта на сервер), во втором поле – локальный путь, куда будет загружен проект. Вот результат получения проекта.
cvs -z9 checkout -P testcvs (in directory e:\cvs) cvs server: Updating testcvs U testcvs/POPDaemon.dpr U testcvs/POPDaemon.res U testcvs/Unit1.dfm U testcvs/Unit1.pas ***** CVS exited normally with code 0 *****
Зайдем в папку, которую мы указали (e:\cvs) и убеждаемся, что проект нормально экспортировался. Если нужно получить лишь определенные модули (например те, которые были добавлены в репозиторий одним из разработчиков), то нужно явно указать этот модуль, например, так:
В принципе, Вы уже можете работать со своими проектами в CVS, но работа с помощью WinCVS не очень и удобна – нужно не забывать регулярно выполнять чекаут проекта, и внесенные изменения отправлять на сервер. Было бы намного удобнее, если бы все эти действия выполнять непосредственно в Делфи.
Для интеграции Делфи и систем контроля версий (в том числе и CVS) существует эксперт Atlant
Athlant
Athlant – это эксперт контроля версий исходных текстов для Delphi и C++ Builder. Он позволяет работать с системой контроля версии не покидая удобную среду Делфи.
Athlant работает с системой контроля версий не напрямую, а через специальный провайдер SCC. Обычно провайдеры SCC идут вместе с самой системой контроля версий, но для CVS нужно устанавливать сторонний провайдер. Список совместимых с Athlant систем контроля версий можно взять здесь. Для CVS есть два провайдера – условно-бесплатный «Пушок» и бесплатный «Иглу». «Игла» у меня не захотела работать, поэтому я юзал «Пушка». Ставится он без проблем, настройки есть, но я ничего не менял – все прекрасно работало и так ?.
Настало самое время «натравит» Атланта на наш проектик. После установки Атланты в меню Делфи появляется соответствующий пункт Athlant. Открываем проект. Обратите внимание, что когда Атлант подключился к провайдеру SCC, то название меню сменится на имя этого провайдера, в моем случае это PuskOk CVS Proxy. Выбираем в нем пункт Connect to storage, и заполняем предложенный диалог (этот шаг можно делать только при первом «натравливании» Атланты на проект):
Если все ввели правильно,
то после подключения в меню Атланты станут доступными остальные пункты.
Ну а дальше все очень просто. Перед правкой модуля нужно выполнить команду Check Out (или из меню Атланты или по нажатию на кнопку из панели управления Атланты - панель управления можно вывести в настройках Атланты). Если не сделаете чекаут, то Атланта Вас предупредит, что для правки модуля нужно все же сделать чекаут и предложит это сделать.
После редактирования модуля нужно зафиксировать изменения на сервере. Не путайте этот шаг с сохранением изменений в локальной копии, которую делает Делфи. Для фиксации изменений нужно выполнить команду Check In.
И не забывайте периодически получать последнюю версию нужных Вам модулей командой Get.
Если Вы добавили в проект новый модуль, то Атланта может автоматически отправить его на сервер – при первом сохранении модуля Атланта спросит Вас, нужно ли добавить модуль в репозиторий. Вот только получать новые модули с сервера Атланта не может, это нужно делать клиентом системы контроля версий, как было показано выше.
Вы наверное могли заметить, что большая часть статьи была уделена CVS, а не Athlant. А так вышло потому, что эксперт Athlant скрывает почти всю черновую работу с системами контроля версий, и вся высокоинтеллектуальная работа сводится к нажатию максимум четырех кнопок, действие который Athlant может выполнять сам при соответсвующей настройки эксперта :)
В заключении выпуска хочу отметить что в Делфи 2005/2006 уже есть своя интергация с провайдерами SCC и более того, эти среды содержат встроенного клиента StarTeam. Для более старых версий Делфи Борланд распространяет специальный эксперт интеграции делфи и StartTeam. В следующем выпуске я опубликую статью с разрешения сайта Interface о работе в Делфи со StarTeam
Ждем Ваших откликов на емайл 5781-author@subscribe.ru или subscr@chertenok.ru
Приглашаем авторов в рассылку!
С уважением,
координатор рассылки Алексей aka Gelios.
Наши координаты:
сайт - www.delphi.chertenok.ru
форум - www.forum.chertenok.ru
контактный email - 5781-author@subscribe.ru
Другие проекты:
www.travel.chertenok.ru - сайт о путешествиях!
В избранное | ||