Написание контрольных, курсовых, дипломных работ, выполнение задач, тестов, бизнес-планов

Лабораторная работа №3

Лабораторная работа №3

  1. 1.     Тема

Работа со слиянием изменений в системе контроля версий Mercurial.

 

  1. 2.     Задание

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

Слить 2 ветки, разрешив конфликты вручную используя KDiff3.

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

 

  1. 3.     Теоретические материалы

Слияние — это основная часть работы с инструментами распределённого контроля версий. Вот несколько случаев, когда возникает необходимость объединить работу:

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

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

Склеивание веток (hg merge)

  1. Нужно переключиться на ветку, в которую нужно влить. Например, $ hg update default
  2. Вливаем в нее требуемую ветку: $ hg merge имяветки
  3. Если есть конфликты, выполняем $ hg resolve --all для попытки автоматически их разрешить.
  4. Если остаются неразрешенные конфликты, то разрешаем их вручную. Для файлов разрешенных конфликтов пишем $ hg resolve -m имя файла. Вручную удаляем имя файла.orig
  5. 5.    После разрешения всех конфликтов выполняем $ hg commit -m "Merge что куда" и $ hg push

Использование графического инструмента слияния

Один из графических инструментов слияния это kdiff3, ниже показан снимок экрана kdiff3 в работе. Выполняемое таким образом слияние называется тройственным (three-way), потому что есть три различные версии файла. В инструменте сравнения верхняя часть окна поделена на три панели:

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

-         посередине «наша» версия файла, содержащая наши изменения.

-         справа «их» версия файла, то есть версия из ревизии, с которой мы производим слияние.

На панели снизу располагается текущий результат слияния. Задача — заменить весь красный текст, означающий неразрешенные конфликты, на осмысленный результат слияния «нашей» и «их» версий файла.

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

 

 

  1. 4.     Примеры работы с Mercurial

На рисунке показано 2 ветки, которые имеют содержат файл ngskfbg.txt с одинаковым именем и разным содержимым

 

 

Ниже мы видим окно слияния двух веток, в котором отображена информация о каждом из файлов, который сливаются и внесенные изменения.

 

 

При успешном выполнении слияния перед нами появится окно с предложением сразу же закомитить изменения и окно с результатами слияния.

При возникновении конфликтов во время слияния их можно решить автоматически или вручную с помощью KDiff3.

 

  1. Источники

https://www.youtube.com/watch?v=CxtQHcX_MTY

http://habrahabr.ru/post/109203/

http://mercurial.selenic.com/wiki/RussianTutorialConflict