Работа с SVN через TortoiseSVN. 2. Просмотр изменений, обновление, слияние
В первой частиopen in new window была описана выгрузка и фиксация в репозиторий. В этой части к работе подключается Вася и вносит новые изменения.
Просмотр изменений
Вася точно также как и Петя создает новый каталог и выгружает репозиторий. По умолчанию выгружается последняя ревизия поэтому в рабочей копии Васи сразу появился файл созданный Петей.
Теперь Вася хочет посмотреть что именно менял Петя в репозитории. Для этого он открывает Журнал, и делает в нем двойном клик на файле который его интересует.
Сразу видно что Петя вынес весь код в отдельную функцию. Увидев это Вася решил внести новые изменения в код. Он изменяет файл 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 автоматически слил изменения - объединил изменения Пети из репозитория и Васи в рабочей копии в одном файле.
После нажатия ОК снова появляется окно фиксации.
В этот раз фиксация Васи проходит удачно.