Работа с SVN через TortoiseSVN. 2. Просмотр изменений, обновление, слияние
В первой части была описана выгрузка и фиксация в репозиторий. В этой части к работе подключается Вася и вносит новые изменения.
Просмотр изменений
Вася точно также как и Петя создает новый каталог и выгружает репозиторий. По умолчанию выгружается последняя ревизия поэтому в рабочей копии Васи сразу появился файл созданный Петей.
Теперь Вася хочет посмотреть что именно менял Петя в репозитории. Для этого он открывает Журнал, и делает в нем двойном клик на файле который его интересует.


Сразу видно что Петя вынес весь код в отдельную функцию. Увидев это Вася решил внести новые изменения в код. Он изменяет файл main.py и фиксирует.
def hello(name): if name == None: print('hello!') else: print('hello ' + name + '!')
hello()

Через некоторое время Петя решил проверить состояние репозитория. Для этого он открывает Журнал и видит новую фиксацию Васи

Для обновления рабочей копии Петя нажимает Обновить


Теперь в рабочей копии последняя версия файла main.py. Петя замечает что программа перестала работать, исправляет ошибку и фиксирует файл.
def hello(name): if name == None: print('hello!') else: print('hello ' + name + '!')
hello('Petya')

Через некоторое время к проекту возвращается Вася и решает добавить новую функцию. Но он забывает обновится перед началом редактирования и изменяет устаревший файл, который не содержит изменений Пети.
def hello(name): if name == None: print('hello!') else: print('hello ' + name + '!')
def hello2(name1, name2): hello(name1) hello(name2)
hello()
и фиксирует его

фиксация не удается. SVN обнаруживает что Вася не обновился и редактировал старую версию файла.

Вася нажимает ОК и TortoiseSVN предлагает ему автоматически обновится.

Вася нажимает Обновить. Появляется окно обновления в котором написано что SVN автоматически слил изменения - объединил изменения Пети из репозитория и Васи в рабочей копии в одном файле.

После нажатия ОК снова появляется окно фиксации.

В этот раз фиксация Васи проходит удачно.
