Работа с 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')
Одновременно с этим Петя тоже вспомнил что нужно бы добавить приветствие для Васи. Об обновлении он забыл и отредактировал старую версию файла.
def hello(name): if name == None: print('hello!') else: print('hello ' + name + '!')
hello('Petya and Vasya') print('Bye!')
Как и ожидалось, сообщение о том что файл был изменен и Петя редактировал старую версию.
Петя нажимает ОК, и выбирает Обновить
В этот раз слияние не удалось, ведь Петя редактировал туже самую строку изменения в которой зафиксировал недавно Вася.
После нажатия ОК снова появляется окно фиксации. Только файл в котором возник конфликт изменений выделен красным цветом.
Теперь чтобы зафиксировать нужно разрешить конфликт. Петя делает двойной клик на файле и открывается редактор конфликтов.
Петя замечает что в репозиторий уже было добавлено приветствие для Васи с помощью отдельной функции и решает оставить этот вариант вместо своего. Петя нажимает Использовать этот текстовый блок на строке из репозитория
Кроме приветствия Петя добавил в код еще одну строку. Её тоже нужно поместить в результирующий файл
Больше конфликтов в файле нет. Петя отмечает что конфликты улажены и закрывает файл.
В окне фиксации файл перестал выделятся красным - в нем больше нет конфликтов.
Петя изменяет комментарий, отмечает файл и фиксирует изменения.