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
Доклады
О 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