Subversion merge

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

Subversion/Слияние в TortoiseSVN

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

Подготовка

Перед началом синхронизации, вам необходимо иметь чистую (без локальных изменений) версию целевой ветви, в данном случае ros-amd64-bringup. Обновите её до последней ревизии.

Получение диапазона ревизий

Вам необходимо знать диапазон ревизий, с которыми вы хотите произвести слияние. Начальной ревизией будет та же ревизия, из которой производилось слияние в ветвь / в транк. Это должно быть указано в коммит-логе последней синхронизации. В этом примере это ревизия 36700. Если синхронизация ещё не производилась, укажите ревизию ветви. Конечной ревизией обычно будет самая свежая ревизия исходной ветви/транка. В этом примере мы выбираем ревизию 36800.

Svn-merge1.png
Svn-merge2.png

Открытие диалога слияния

Щёлкните правой клавишей на целевой ветви в Проводнике, выберите "TortoiseSVN", а затем "Merge...".

Svn-merge3.png

Выбор типа слияния

Обычно, необходимо использовать "Merge a range of revisions" ("Слияние с диапазоном ревизий"). Выберите этот тип и нажмите "Next".

Svn-merge4.png

Выбор исходной ветви и диапазона ревизий

В этом примере мы хотим синхронизировать изменения транка с ветвью, так что в поле "URL to merge from" мы выбираем транк, а точнее, подпапку транка reactos, так как в этом случае локальная копия является подпапкой reactos ветви ros-amd64-bringup, а остальные папки нас не интересуют.

Svn-merge5.png

Если папка ещё не выбрана и не указана в поле "from", нажмите на "..." справа от текстового поля и выберите её из репозитория.

Svn-merge6.png

Ранее мы уже определили диапазон ревизий, так что просто введите его в поле Revision. Помните что диапазон ревизий должен начинаться с последней ревизии, *из которой было произведено* слияние. Обычно, конечной ревизией является самая новая ревизия, но в данном случае мы выбираем меньшую ревизию (36800). Затем нажмите на "Next".

Параметры слияния

В этом последнем диалоговом окне, выберите глубину слияния ("merge depth"), указав тем самым изменяемые части вашей локальной копии. Обычно, вам будет нужно применить изменения всей рабочей копии, так что выберите "working copy". Вы можете выбрать "Compare whitespaces", если вы хотите проигнорировать эти изменения (не рекомендуется).

Svn-merge7.png

Тестовый запуск

Если вы хотите избежать проблем, сначала щёлкните на "Test merge". Это приведёт к эмуляции процесса слияния и вам будет показан отчёт о результате операции, но ваша локальная копия изменена не будет. По окончании процесса, вы увидите отчёт о результате. Если вы получаете множество ошибок и слияние практически не происходит, то вы, вероятно, выбрали неверную папку с исходным кодом или начальную ревизию. В этом случае исправьте настройки и попробуйте еще раз. Наличие нескольких конфликтов - это нормально, и они могут быть разрешены вручную позже.

Svn-merge8.png

Выполнение слияния

Если тестовый запуск прошёл успешно, делайте реальное слияние, нажав на "merge". Теперь выбранный диапазон ревизий будет слит с вашей локальной копией.

Разрешение конфликтов

<TODO>

Отправка коммитов с изменениями

Прочтите статью Subversion/Использование TortoiseSVN.

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