Subversion branches

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

Subversion/Ветви

Когда необходимо создавать ветвь

Создайте ветвь если:

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

Создание ветви

Используйте svn copy для создания ветви в директории branches:

 svn copy -m "Create branch1 branch." svn://svn.reactos.org/reactos/trunk svn://svn.reactos.org/reactos/branches/branch1

Поддержание синхронности ветви и транка

Если ветвь находится в разработке в течение долгого периода времени, настоятельно рекомендуется поддерживать её в синхронном состоянии с ветвью транка для того, чтобы эти две ветви не имели слишком больших различий. Это можно сделать, регулярно сливая изменения транка в ветви по прошествии некоторого времени (раз в две-три недели). Используйте для этого команду svn merge, но сначала вам неообходимо понять, из какой ревизии вы будете брать данные для слияния. Для первого слияния с ветвью, необходимо использовать ревизию, из которой была создана ветвь. Чтобы получить эту информацию, используйте команду svn log.

Если вы пользуетесь TortoiseSVN, тогда прочтите статью Subversion/Слияние в TortoiseSVN.

 svn log --stop-on-copy svn://svn.reactos.org/reactos/branches/branch1

Приведённая ниже строка протокола показывает ревизию, из которой была создана ветвь:

 r12735 | chorns | 2005-01-02 21:12:17 +0100 (sun, 02 jan 2005) | 1 line
 Create branch1 branch.

Введите команду svn info в вашей рабочей копии для того, чтобы узнать текущую ревизию. Не забывайте перед этим выполнить команду svn up.

Path: branch_working_copy
URL: svn://svn.reactos.org/reactos/branches/branch1
Repository UUID: e2f519d9-20a2-bc46-8705-e3bf7245ce19
Revision: 15132

Теперь вы можете выполнить слияние изменений, сделанных в транке со времени создания ветви (или со времени последнего слияния), используя команду svn merge:

 svn merge -r 12735:15132 svn://svn.reactos.org/reactos/trunk branch_working_copy

Возможно возникновение конфликтов слияния. Разрешите их, выполните команду svn resolved на файлах или свойствах, всё протестируйте, и теперь вы можете отправить коммит с произведёнными вами изменениями. Крайне важно, чтобы вы указали диапазон ревизий, с которыми производилось слияние, в сообщении коммита, а также, необходимо будеть помнить его и в следующий раз, когда вы будете использовать слияние из транка.

 svn ci -m "Merged 12735:15132 from trunk" branch_working_copy

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

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

Слияние изменений в ветви обратно в транк

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

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

 svn merge -r 12735:15132 svn://svn.reactos.org/reactos/branches/branch1 branch_working_copy

Разрешите конфликты слияния, протестируйте, и, наконец, отправьте коммит. Снова, укажите диапазон ревизий в сообщении коммита для использования его при следующем слиянии с транком (если это необходимо).

 svn ci -m "Merged 12735:15132 from branch1" trunk_working_copy

Полезные советы

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

  • Если вы полностью переписываете файл в ветви, то удалите его в ветви и создайте вновь, а не просто изменяйте. Сделав это, вы избежите возможных конфликтов слияния при слиянии из ветви в транк. Когда вы будете это делать, то не получите уведомлений о конфликтах, так что делайте это внимательно, для того, чтобы исключить перезаписывание важных данных при слиянии.

Удалённые ветви

Эти ветви были удалены из репозитория.

  • cis: 16812 - 40467
  • expat-rbuild: 21182 - 40467
  • old_reactx: 37254 - 40467
  • winldr: 25066 - 40467
  • xen: 14300 - 40467
ReactOS
Search.png
Доклады
О ReactOS • ARWINSS • ЧеЗа
Информация Новости Выпуски новостей • Переводы блогов • Новости проекта • Видео • ReactOS на Хабре • USB от Вадима Галянта
Разработка Руководство по программированию • Отсутствующая функциональность • Ветви разработки • Компоненты системы • ReactOS и Wine • План работ • Roadmap ядра by Vgal • Разработчики • Совместимость с dll Windows • Наиболее значимые изменения за год • Используемые проекты • Google Summer of Code • Известные проблемы
Порты AMD64 • ARM • Xbox • PowerPC
Компоненты Файловые системы • Режим совместимости • Отчеты об ошибках • Печать • USB • Ядро
Загрузчик Восстановление MBR • Загрузка из GRUB • Параметры загрузки
Прочее ARWINSS • Приложения в ReactOS • Оформление ReactOS • Координаторы • "Пасхальные яйца" • Монетизация
Другое Типы ядер • FreeWin95
Помощь
RAM-диск ReactOS по PXE • с жесткого диска
Разработка Стиль написания кода • Стандарты RC-файлов • Работа с документацией • Венгерская нотация • GNU Indent • [ Subversion : ветви • слияние • использование TortoiseSVN ] • Основы перевода • Отправка патчей
Репорты Отладка в VirtualBox • Отладка на экран • Добавление программы в менеджер приложений • Отправка отчетов
Отладка Com0com • GDB • Kdbg • Rossym.gdb • Roswin.gdb • WinDBG • Руководство по WinDBG • Включение трассировки ядра • Коды DPRINT • Удалённый отладчик ReactOS
Сборка CMake • RBuild • Файлы RBuild • Автоматическое копирование файлов • Сборка MINGW-w64 • Сборка модулей • Среда сборки
Тестирование VirtualBox • VMware • QEMU • Hyper-V • Необходимый объём диска • Перенос файлов на виртуальный диск • Установка ReactOS • Установка драйверов
Сеть Общие папки • Samba • NFS
Игры Установка DirectPlay
Обновление ReactOS • Загрузочная флешка • Чем можно помочь проекту • Создание нового пользователя • Звук и сеть в VirtualBox • Съемка и публикация видео • IRC-канал • Сторонние компоненты • FAQ • ReactOS как рабочая станция • ReactOS и UEFI
Обзоры Оболочка • NTVDM • WOW • Community Edition • История сайта • ReactOS Server • Криптография • ПО времен XP