разработка и программирование электронных устройств

Начинаем использовать SVN в своих проектах

Для любого программиста знакома ситуация, когда после внесения некоторых изменений в исходный код программы последняя перестает правильно работать. Выходом из такой ситуации может служить сохранение нескольких копий программы на разных этапах разработки. Такое решение нередко приводит к путанице в версиях, особенно после длительной паузы в работе над проектом.

Решение проблемы предоставляют системы контроля версий , которые автоматизируют процесс управления версиями программы.

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

Subversion или сокращенно SVN является одной из наиболее современных систем управления версиями.

Идея использовать SVN в своих проектах возникла у меня в связи с желанием хранить все существующие и будущие примеры и проекты сайта «Схемотехника» в одном месте, а также иметь возможность получить доступ к исходному коду, хранящемуся в удаленном SVN хранилище, из обеих операционных систем ( Linux и Windows).

В качестве бесплатного хостинга для своего SVN хранилища я выбрал Google Code. Ссылка на созданный мною проект доступна из главного меню сайта под названием «SVN хранилище». В конце статьи также размещены ссылки на другие интересные проекты для микроконтроллеров, распространяемые под свободной лицензией.

Теперь о главном, как же воспользоваться этим-самым хранилищем? Очень просто! Для этого необходимо установить клиентское программное обеспечение на своем домашнем компьютере, которое существует для различных операционных систем.

Для пользователей Windows одной из популярных программ для работы с SVN является TortoiseSVN, которую можно также загрузить с хранилища на закладке Downloads.

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

Счастливым обладателям Fedora Electronic Lab не придется совершенно ничего устанавливать, поскольку все необходимое уже установлено в системе «с коробки».

На бесплатных сервисах, таких как Google Code и Sourceforge, кроме SVN, поддерживаются и другие системы управления версиями( CVS, git, Mercurial ).

Для того, чтобы скопировать удаленную файловую структуру на свой жесткий диск достаточно выполнить единственную команду, указанную на сайте проекта( Source — Checkout для Google Code и Develop в Sourceforge ).

Сначала нужно проверить наличие всех необходимых утилит в системе :

Git – довольно древняя система управления версиями , написанная Линусом Торвальдсом и используемая им при разработке ядра Linux. В новые дистрибутивы Fedora Linux git не включен, поэтому выполним его установку в Fedora Electronic Lab с помощью команды :

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

Если же не планируется выкладывать исходники или поведать всему миру о своем проекте, то можно создать локальное SVN хранилище на жестком диске, которое поможет вам контролировать версии своих исходных файлов.

Для создания локального SVN хранилища необходимо выполнить команду :

Внутри директории svn автоматически будет создана необходимая файловая структура.

Теперь нужно зарегистрировать пользователей , имеющих доступ к созданному хранилищу. Для этого перейдем в каталог /root/svn/conf и откроем файл passwd

Входим в режим редактирования ( клавиша Insert ) и добавляем в группу users нового пользователя и пароль.

Сохраняем внесенные изменения и выходим ( ESC : x ).

Следующим шагом для нас будет внесение в SVN хранилище нашего проекта. Пускай проект находится в /root/src . Необходимо перейти в директорию проекта и выполнить команду импорта исходников в хранилище

После выполнения последней команды в хранилище будут добавлены каталоги и файлы из директории src.

Теперь необходимо синхронизировать рабочую версию проекта с версией из хранилища. Поскольку мы переместили в хранилище необходимую структуру файлов, то теперь можно скопировать и синхронизировать с хранилищем с помощью команды.

Выполнив команду ls -a вы увидите в своем рабочем каталоге дополнительную директорию .svn . Эту директорию не нужно трогать, иначе рискуете нарушить работу системы контроля версий.

Далее вся работа проводится над созданной и синхронизированной с хранилищем файловой структурой.

Попробуем добавить новый файл main.c в репозиторий . Для этого сначала создадим его в нашем рабочем проекте.

Текст файла — любой, например такой :

Теперь необходимо добавить новый файл main.c под контроль версий и синхронизировать наш проект с хранилищем

Добавим в комментарий файла main.c ключевые слова для отображения номера ревизии, автора и даты изменения.

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

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

Заставить SVN заняться подстановкой значений вместо ключевых слов можно с помощью следующей команды

При фиксации изменений в файле вместо ключевых слов будут подставляться конкретные значения.

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












Список ссылок :
1 Управление версиями в Subversion — перевод на русский язык исчерпывающей документации по SVN
2 Встраиваемая операционная система uOS — операционная система для микроконтроллеров Сергея Вакуленка
3 stm32flash— bootloader под Linux для загрузки прошивки в микроконтроллеры STM32, использующий для программирования штатный загрузчик
4 libopenstm32 — библиотека для программирования микроконтроллеров STM32
5 GNU ARM Eclipse Plug-in— плагин для автоматизации создания проектов под микроконтроллеры ARM в Eclipse
6 AVR Plugin for Eclipse— плагин для автоматизации создания проектов под микроконтроллеры AVR в Eclipse
7 GNU AVR Simulator— программный симулятор микроконтроллеров AVR
8 OpenOCD Eclipse Plug-in— плагин Eclipse для использования OpenOCD
9 PIC C Builder for Eclipse— плагин для автоматизации программирования микроконтроллеров PIC в Eclipse

Viewed 2008 times by 655 viewers

3 Comments to Начинаем использовать SVN в своих проектах

  1. Volldemar's Gravatar Volldemar
    12 марта 2011 at 17:00 | Permalink

    Скачал и установил себе на комп TortoiseSVN (Вин7 х64), а вот дальше то как?
    Что то не понятно, что и как, и куда и кого 😉

Leave a Reply

You must be logged in to post a comment.