Работа с SVN через TortoiseSVN. 3. Конфликты

В предыдущей частиopen in new window был рассмотрен случай когда слияние изменений Пети и Васи произошло автоматически. Сейчас рассмотрим ситуацию когда Вася и Петя делают одновременно изменения которые SVN не может слить автоматически.

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

def hello(name): if name == None: print('hello!') else: print('hello ' + name + '!')

def hello2(name1, name2): hello(name1) hello(name2)

hello2('Petya', 'Vasya')

Диалог фиксации TortoiseSVN

Одновременно с этим Петя тоже вспомнил что нужно бы добавить приветствие для Васи. Об обновлении он забыл и отредактировал старую версию файла.

def hello(name): if name == None: print('hello!') else: print('hello ' + name + '!')

hello('Petya and Vasya') print('Bye!')

Диалог фиксации TortoiseSVN

Как и ожидалось, сообщение о том что файл был изменен и Петя редактировал старую версию.

Сообщение о неудачной фиксации

Петя нажимает ОК, и выбирает Обновить

Диалог Обновить или отменить?

В этот раз слияние не удалось, ведь Петя редактировал туже самую строку изменения в которой зафиксировал недавно Вася.

Сообщение о конфликте при фиксации

После нажатия ОК снова появляется окно фиксации. Только файл в котором возник конфликт изменений выделен красным цветом.

Диалог фиксации при возникновении конфликта

Теперь чтобы зафиксировать нужно разрешить конфликт. Петя делает двойной клик на файле и открывается редактор конфликтов.

Окно TortoiseMerge во время редактирования конфликта

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

Контекстное меню TrtoiseMerge

Результирующий файл в TortoiseMerge

Кроме приветствия Петя добавил в код еще одну строку. Её тоже нужно поместить в результирующий файл Контекстное меню TrtoiseMerge

Результирующий файл в TortoiseMerge

Больше конфликтов в файле нет. Петя отмечает что конфликты улажены и закрывает файл.

Кнопка Пометить как улаженный

В окне фиксации файл перестал выделятся красным - в нем больше нет конфликтов.

Диалог фиксации TortoiseSVN после улаживания конфликта

Петя изменяет комментарий, отмечает файл и фиксирует изменения.

Диалог фиксации TortoiseSVN

Последниее изменение: 24.08.2023, 06:42:55