Subversion

Материал из Русский WINE
Перейти к: навигация, поиск

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 для командной строки.

Использование каждого из этих клиентов описано в отдельных статьях:

Коммиты

Коммитами называются данные, добавленные в 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/Ветви

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP