Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / SVN / ЛБ_Tortoise_Метод.Указ.docx
Скачиваний:
18
Добавлен:
17.06.2023
Размер:
3.63 Mб
Скачать

2.7 Синхронизация рабочей копии с репозиторием (Теория)

Пусть работают одновременно и независимо друг от друга два человека – Вася и Петя. Вася и Петя независимо друг от другадобавили свои файлы в проект. Для того, чтобы воспользоваться результатами работы друг друга, они должны синхронизировать свои рабочие копии друг с другом. В SVN это делается через репозиторий, с помощью команды Update. Вася в своей рабочей копии выполняет команду Update (рисунки 2.13-2.15).

Рисунок 2.13

В результате у него в рабочей копии появляется файл Пети.

Рисунок 2.14

Документ находится под контролем SVN.

Который находится под контролем SVN.

Рисунок 2.15

Важно!

При работе над проектами, особенно если работает команда разработчиков, регулярно выполняйте синхронизацию рабочей копии с репозиторием!!!!

Невообразимо важно!

Для того, чтобы несколько человек могли работать с файлами, изменять их, сливать, синхронизировать, улаживать конфликты и др., необходимо выполнение условий:

  1. Во 2 лабораторной работе Вы работаете только с папкой trunk (ствол), никаких ответвлений (Branches) здесь не используется!!

  2. Когда создаете рабочую копию, рабочие копии всех членов бригады должны быть привязаны к одной и той же папке в хранилище.

Задание для самостоятельной работы:

Импортируйте папку с файлами на ваше усмотрение в хранилище.

2.8 Изменение и откат файлов

Если в документ, который находится в рабочей копии, мы внесем изменения, то Tortoise SVN тут же отследит их. Об это нам говорят значки на редактируемыхфайлах теперь, который станут краснымис восклицательными знаками (рисунок 2.16).

Рисунок 2.16 – Изменения в файле (файл отличается от исходной версии, которая имеется в хранилище)

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

Пусть Петя внес изменения в документ, который создал Вася, но позже решил, что изменения ему не нужны и он хочет их отменить.Ему необходимо выполнить команду Различия (Diff) над нужным файлом. Запустится инструмент TortoiseSVN для сравнения файлов и покажет какиеточно строки в файлах были изменены (рисунки 2.17-2.18).

Рисунок 2.17

Рисунок 2.18

Петя удаляет часть своих изменений, но тут понимает что все изменения, внесенные им, были ошибочны, и он хочет восстановить начальное состояние файла hello.py. Он делает Update, но состояние файла не изменяется (рисунок 2.19).

Рисунок 2.19

Это связанно с тем, что изменения файла в рабочей копии имеют приоритет перед файлом в репозитории. Для того что бы восстановить начальное состояние файла (сделать откат по ревизии) нужно воспользоваться командой Revert (рисунок 2.20).

Рисунок 2.20

В результате файл вернется в то состояние, в котором он был при создании рабочей копии или последней синхронизации рабочей копии с репозиторием. При этом, информация о состоянии файла для коммандDiff/Revert берется не с репозитория SVN, а из служебных папок .svn, т.е. наличие постоянно подключенного сервера не обязательно (рисунок 2.21).

Рисунок 2.21

Важно! Будьте крайне внимательны при откатах изменений, после отката восстановить сделанные модификации рабочей копии невозможно!