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

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

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

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 27314 times by 6595 viewers

Last modified: 06/02/2020

Author

Comments

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

Например, нужно скачать с Google Code программу stm32flash:
1. Заходим по ссылке №3, выбираем меню «Source»
2.Создаем на своем жестком диске каталог stm32flash, жмем на нем правую кнопку мыши , в контекстном меню выбираем SVN Checkout
3. В окне «Checkout» вставляем URL со страницы проекта http://stm32flash.googlecode.com/svn/trunk/, жмем OK, после чего начнется загрузка
4. Все готово, заходим в каталог stm32flash и просматриваем его содержимое

Для синхронизации с SVN хранилищем сайта «Схемотехника» выполняется та же последовательность действий, за исключением первого пункта. Нужно создать каталог с соответствующим названием и на шаге 3 вставить ссылку http://cxemotexnika.googlecode.com/svn/trunk/ . После скачивания файловой структуры SVN хранилища можно изменять, добавлять, удалять файлы и каталоги, однако синхронизировать эти изменения с удаленным сервером не получится, поскольку доступ для анонимных пользователей только на чтение . Для работы над проектом необходимо получить свою учетную запись.

Comments are closed.