Subversion
Subversion — система управления версиями, используемая в ReactOS для управления исходным кодом проекта.
До 30 декабря 2004 года исходный код ReactOS находился в CVS-репозитории. Начиная с 1 января 2005 года, исходный код находится в Subversion-репозитории (SVN).
По состоянию на май 2014 года, ReactOS использует Tigris SVN (сейчас Apache SVN) версии 1.6.17. Кроме того, для просмотра исходного кода в браузере, ReactOS использует постоянно обновляемый до последней версии ViewVC.
Содержание
Размещение исходного кода
Для загрузки исходного кода вам потребуется SVN-клиент. Ниже приведены инструкции по использованию некоторых SVN-клиентов.
Также, вы можете просмотреть репозиторий исходного кода, посетив FishEye при помощи своего браузера, или перемещаясь по перекрёстным ссылкам ежедневно обновляемой базы данных doxygen.
ReactOS
Сама операционная система с базовыми компонентами
Приложения ReactOS
Дополнительные приложения ReactOS (входящие в состав релизных версий)
Информация для прессы
Графика и изображения, представляющие проект
Инструменты проекта ReactOS
Дополнительные инструменты, используемые проектом ReactOS
Вебсайт ReactOS
Компоненты вебсайта проекта ReactOS
Прочее
Документация ReactOS - Документация к компонентам ReactOS (очень устаревшая)
Фоновые изображения ReactOS - Фоновые изображения, используемые в релизных версиях
Ветви
Их размещение непостоянно, и их код обычно после улучшения сливается с основным деревом исходного кода.
См. Ветви разработки
Клиенты SVN
Для ОС Windows рекомендуется использовать клиент TortoiseSVN, прекрасно интегрирующийся в Проводник Windows. Кроме того, в состав пакета "Среда сборки ReactOS" для Windows входит утилита subversion для командной строки.
Использование каждого из этих клиентов описано в отдельных статьях:
- TortoiseSVN
- прочие
Коммиты
Коммитами называются данные, добавленные в SVN-репозиторий ReactOS. Термин "данные" использован здесь потому, что в SVN может добавляться не только код, но и любое медиа, включая значки и звуки. Если в SVN был отправлен коммит, то это значит, что он стал частью исходного кода ReactOS. Каждый коммит имеет свой собственный уникальный идентификационный номер и сообщение с описанием его предназначения.
Сообщения
Используются для облегчения написания списков изменений в релизных версиях. Ниже предлагается стандартный формат сообщения коммита. Такой формат нужен для того, чтобы можно было автоматически, с помощью скрипта, обработать целую серию ревизий SVN и составить список изменений, помещая все коммиты, касающиеся одного компонента, в одну категорию. Для этого в коммите должно находиться описание того, для какого компонента (компонентов) он предназначен.
[Название компонента] -Описание сделанных изменений.
В качестве примера можно привести (коммит Йоханнеса Андервальда, rev44141):
[KERNEL32] * Don't access freed memory in GetVolumeNameForVolumeMountPointW
Оповещение
Существует несколько способов оповещения разработчиков о вновь отправленных коммитах.
- Электронные письма, содержащие изменения каждого коммита, отправляются в список рассылки ros-diffs. Эти письма содержат изменения в текущей ревизии в простом текстовом формате.
- Бот RosKGB на IRC-канале #reactos оповещает пользователей о произошедшем событии
- Страница веб-интерфейса ReactOS FishEye также показывает сообщения всех последних коммитов.
Запрос на право записи (право отправлять коммиты) в SVN
Условия (WIP)
Есть несколько обязательных условий для получения прямого и полного доступа на запись (так называемый "коммит-доступ") в главный репозиторий:
- Способность общаться на письменном английском языке.
- Готовность раскрыть своё настоящее имя, по крайней мере для главных лиц проекта (т.е., главы разработчиков или руководителя проекта), и, желательно, для публичного доступа.
- Не иметь юридических ограничений по внесению кода в проекты с открытым исходным кодом. Сотрудники Microsoft и её дочерних предприятий к работе над проектом не допускаются.
Получение доступа для записи
С тех пор, как вы начали отправлять патчи и новый код для проекта, вас можно рассматривать, как разработчика. Мы предпочли бы не давать доступ тому, кто сделает два или три обновления, а потом перестанет. Таким образом, если вы не собираетесь отправлять патчи постоянно, а думаете делать это только время от времени, в таком случае вам лучше создавать записи в JIRA и прикладывать файлы патчей к ним. Однако, если вы станете разработчиком на постоянной основе, вы должны обязательно рассмотреть возможность получения доступа для записи.
У кого уточнить?
Присоединяйтесь к IRC-каналу ReactOS в сети FreeNode #reactos и задайте интересующий вас вопрос там.
Для получения дополнительной информации прочтите страницу IRC-канал.
Устранение неисправностей
При обновлении SVN выдаётся сообщение: Object with the same name already exists
Когда вы обновляете свою рабочую копию, вы можете получить сообщение об ошибке: object with the same name already exists (объект с таким именем уже существует).
Subversion отображает это сообщение об ошибке, поскольку в репозитории заменяется каталог, и ваша рабочая копия содержит данные, которые неизвестны Subversion (Ваша рабочая копия изменена локально). Поскольку Subversion делает все возможное, чтобы не причинить вред вашим данным, вы должны удалить или переместить из рабочей копии данные, которых нет в репозитории.
Однако, это происходит не так уж часто. Есть два варианта правильного решения проблемы:
- Удалить каталог, вызывающий возникновение ошибки и вновь обновить вашу рабочую копию.
- Удалить в рабочей копии все файлы и каталоги, неизвестные Subversion, а затем снова обновить вашу рабочую копию.
Ветвление
Обратитесь к статье Subversion/Ветви