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
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работРазработчикиСовместимость с 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-каналСторонние компоненты
Обзоры ОболочкаNTVDMWOWCommunity Edition