Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
686.docx
Скачиваний:
85
Добавлен:
24.04.2019
Размер:
6.68 Mб
Скачать

5.5 Система контроля версий

Система контроля версий решает сразу несколько задач для разработчика

встроенного ПО:

 Позволяет сохранять в надёжном месте весь его проект (выполняет

функции интеллектуального архиватора).

 Позволяет предоставить доступ к проекту для всех его участников, а

также регламентировать доступ для посторонних людей.

 Позволяет отслеживать все изменения в проекте, возвращаться к

старым версиям файлов и вести параллельно сразу несколько вариантов

одного проекта.

Большинство опытных монстров и зубров в области программирования

могут возразить, что для сравнительно несложных программных проектов,

существующих в области встроенных систем, система контроля версий –

лишняя бюрократическая процедура, отнимающая время и не дающая ничего

взамен. Хочу вас заверить, что это не так. Даже если вы работаете один, и вам

не нужно совместно с кем-то работать над одним проектом, система контроля

версий оказывается гораздо удобнее банального архиватора. С помощью такой,

к примеру, команды:

svn co http://vash_server.vash_domen.ru/repos/proect

вы можете получить доступ к своим исходным текстам везде, где есть

компьютеры и выход в Интернет. С помощью простой команды svn commit вы

можете отправить свои изменения обратно на сервер. Вам не нужно больше

бояться, что вирусы уничтожат ваши файлы, или что у вас сломается жесткий

диск. Все данные хранятся на удаленном сервере и всё, что вы можете

потерять, – это несколько часов работы. Естественно, все это будет работать

242

именно так, если вы позаботитесь о регулярном резервном копировании вашего

сервера.

В настоящее время системы контроля версий интегрированы в различные

интегрированные среды разработки (IDE). Наиболее распространенными

системами контроля версий, широко применяемыми на момент написания этой

книги, являются CVS и Subversion. Эти системы очень похожи. CVS появилась

раньше, чем Subversion и хорошо себя зарекомендовала. Subversion в

настоящий момент активно пробивается в лидеры, в ней исправлено несколько

концептуальных ошибок, имеющихся в ее предшественнике SVN. Чем

пользоваться вам – решайте сами. По сути, все системы контроля версий очень

похожи, и чем пользоваться – дело привычки или каких-то иных предпочтений.

5.5.1

Работа с системой контроля версий

Работа с системой контроля версий начинается с создания репозитория.

Репозиторий – это специализированная база данных, в которой хранятся файлы

вашего проекта, вносимые изменения, информация о создании и удалении

файлов, информация о пользователях и т.п. В основном, репозиторий рассчитан

на хранение обычной текстовой информации, хотя можно хранить и двоичные

файлы (к примеру, исполняемые, документацию в формате PDF или DOC).

Почему не использовать обычную СУБД, к примеру, такую как MySQL или

Oracle? Ответ прост: проблема в эффективности. Репозиторий системы

контроля версий специально ориентирован на хранение текстовых документов

и изменений в них. Хранение таких данных (весьма большого объема) в

обычной базе данных вызовет неэффективное использование дискового

пространства и замедление работы. Обычно в репозитории хранится разница

между текущей и предыдущей версией файла. Для того, чтобы посмотреть на

то, как может выглядеть внутренности репозитория, изучите работу программы

diff.

После создания репозитория можно добавлять и стирать в нем файлы,

получать содержимое репозитория на свою машину, проверять обновления и

отправлять изменения обратно. Типичный цикл работы на примере Subversion

может выглядеть примерно так:

svn co http://194.85.162.173/repos/ul3

Эта строка позволяет забрать с сервера 194.85.162.173 из репозитория

repos/ul3 ваш проект. Вы можете отредактировать нужные вам файлы. Для того,

чтобы убедиться, что ваши товарищи не добавили в проект чего-то нового

можно вызвать команду:

svn update

Исполнение этой команды приводит к тому, что вы забираете из

репозитория все новые файлы, появившиеся там после того, как вы скачали

версию себе на машину. Если вы умудрились редактировать с кем-то один и тот

же файл, система контроля версий должна предупредить вас о конфликте.

243

Разрешение

конфликта

делается

в

соответствии

с

документацией

на

используемый вами инструмент.

Для записи изменений, сделанных вами в репозиторий воспользуйтесь

следующей командой:

svn commit

Данная команда отправит в репозиторий только те файлы, которые вы

изменили. Если файлы были изменены кем-то еще, вам будет сообщено о

конфликте. В процессе запуска команды будет вызван текстовый редактор, и

вам будет предложено описать сделанное изменение. Пожалуйста, не ленитесь

писать по существу. Эти записи потом вам сильно помогут разобраться в

проекте, когда пройдет существенное время, и вы все основательно позабудете.

О более сложных вариантах использования систем контроля версий я

рекомендую читать самостоятельно в специальной литературе [41].

244

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]