Разрешение конфликтов
<< Click to Display Table of Contents >> Разработка > Процесс разработки > Среда разработки Directum RX Разрешение конфликтов |
Если в один и тот же элемент разработки внесены схожие изменения, возникает конфликт. Это может произойти при слиянии изменений в одной ветке разработки или при слиянии нескольких веток с помощью Git Extensions.
При получении изменений с сервера Git и перед их отправкой на сервер среда Directum RX Development Studio копирует на компьютер разработчика последнюю актуальную версию исходного кода и сравнивает изменения. Наличие конфликтов также проверяется при каждом запуске среды разработки, большинство из них разрешаются автоматически. Внешние инструменты сравнения используются в оставшихся случаях, когда среда разработки предлагает разрешить конфликты вручную.
Чтобы минимизировать количество конфликтов рекомендуется:
•всегда получать исходный код с сервера Git перед тем, как вносить изменения в разработку;
•не изменять одновременно с другими разработчиками один и тот же отчет, схему задачи, форму, ленту, набор виджетов, внешний вид списка и папки, а также внешний вид вычисляемой папки;
•после добавления, переименования, удаления или изменения элементов разработки сразу отправлять изменения на сервер Git.
Автоматическое разрешение конфликтов
Конфликты разрешаются автоматически:
•при слиянии файлов ресурсов (*.resx);
•при слиянии файлов метаданных (*.mtd), например, если одновременно добавляются свойства или публичные функции. Кроме того, конфликты разрешаются, когда в структуре метаданных важен порядок элементов или зависимость между ними. К таким случаям относятся изменения, вносимые в разработку виджетов, вычисляемых папок и т.д.
ПРИМЕЧАНИЕ. Конфликты, которые возникают при слиянии файлов исходного кода (*.cs), разрешаются только вручную.
Если конфликты разрешены автоматически, предупреждение и информация о них выводится в списке изменений:
В этом случае:
1.Откройте редактор элемента разработки и проверьте, что автоматически внесенные изменения верны. Это рекомендуется сделать, чтобы гарантировать корректность кода. Определить измененные элементы разработки можно в программе Git Extensions на закладке Diff.
2.Если изменения верны, отправьте изменения на сервер. Если нет, исправьте их и затем отправьте.
Если открылось окно с конфликтами:
1.В области «Конфликты» выделите решение, модуль, отчет или тип сущности. В области справа отобразятся параметры, в которых возник конфликт. Например, свойства, форма, обработчики событий, системные ресурсы и т.д.:
2.В дереве у элемента разработки отображаются дочерние узлы, если конфликт возник в программном коде, скриптах публикации, sql-запросах или локализации.
Чтобы сравнить ваши изменения с изменениями, сохраненными на сервере Git, выделите узел в дереве. Справа отобразятся строки, в которых возник конфликт:
Строки с конфликтом начинаются с символов <<<<<<< HEAD и заканчиваются символами >>>>>>> master. До знаков ======= отображаются ваши изменения, после – изменения, сохраненные на сервере. Строки в области справа доступны только для просмотра.
3.Чтобы разрешить конфликты в программном коде, объедините изменения во внешнем инструменте для сравнения. Для этого выделите дочерний узел в дереве и нажмите на кнопку Открыть во внешнем инструменте сравнения. По умолчанию откроется программа WinMerge. В ней отображаются изменения, которые:
•были на сервере до внесения изменений вами и другим разработчиком;
•добавил и отправил на сервер другой разработчик;
•внесли вы.
ПРИМЕЧАНИЕ. Вместо WinMerge можно использовать другой инструмент сравнения, например vsDiffMerge или KDiff3. Подробнее см. раздел «Настройка внешнего инструмента сравнения».
4.Если после разрешения конфликтов в коде остались другие конфликты, например, в схеме задачи, выберите, какие изменения использовать: ваши или сохраненные на сервере. Для этого выделите решение, модуль, отчет или тип сущности в дереве. Чтобы для разрешения остальных конфликтов использовать ваши изменения нажмите на кнопку Взять local. Чтобы использовать изменения с сервера – Взять remote.
Совет. Если конфликты возникли в изменениях формы, ленты, отчета, схемы задачи, набора виджетов, внешнего вида списка, папки или вычисляемой папки, возьмите изменения с сервера. После разрешения всех конфликтов и фиксации изменений, откройте редактор элемента и при необходимости добавьте свои изменения заново.
5.После разрешения всех конфликтов появится окно с соответствующим сообщением. Нажмите в нем на кнопку Зафиксировать. Окно разрешения конфликтов закроется. В окне «Список изменений» в области «Локальные фиксации» появится запись с вашим комментарием к фиксации и запись о разрешении конфликта.
6.Если после разрешения конфликтов в окне вывода среды разработки появились сообщения об ошибках, исправьте их.
Совет. В окне вывода щелкните два раза левой кнопкой мыши по тексту сообщения. Откроется редактор элемента разработки, в котором возникла ошибка.
7.Откройте редакторы элементов разработки и проверьте изменения, которые внесли при разрешении конфликтов.
8.Отправьте изменения на сервер. Для этого в окне «Список изменений», в области «Локальные фиксации» нажмите на кнопку Отправить.
© Компания Directum, 2024 |