Я новичок в TortoiseGit. Хотите знать, если я получаю конфликт в файле .resx, как мне разрешить его во время слияния? Например, я мог бы выбрать «использовать их» в меню, попытаться сделать вытягивание и нажатие, но правильный ли это подход? Могу ли я как-то использовать их и пересобрать с изменениями моего проекта? Отличий (а также перепутанного содержимого по сравнению с репозиторием) много - многим делать настоящее слияние. Спасибо за поиск?
TortoiseGit/Winforms: разрешение Resource.resx при слиянии
Ответы (2)
Это старый вопрос, на который нет ответа. Однако разрешение конфликтов в файлах resx сводит меня с ума. Основная проблема заключается в том, что файлы resx могут быть изменены случайным образом при обновлении. Visual Studio не заботится о порядке. В результате может возникнуть множество тривиальных «конфликтов» из-за того, что элементы находятся в разных местах в двух файлах resx.
Я обнаружил, что ответ заключается в сортировке файлов resx по атрибуту имени перед слиянием. В этой статье объясняется, как это делается, и дается простой инструмент командной строки. Автор ссылается на то, как его можно интегрировать в различные инструменты сравнения/слияния. Его пример — Beyond Compare 3 (которую я использую), и эта статья содержит инструкции по как сделать интеграцию.
Я попробовал это, и мне впервые удалось объединить ветки с изменениями графического интерфейса без потерь, волос или часов ручного ремонта в Visual Studio.
Я надеюсь, что этот ответ актуален и может помочь людям, как это помогло мне.
Мое решение немного хакерское, но оно также заботится о файле Resources.designer.cs.
VS автоматически генерирует Resource.designer.cs из Resources.resx, поэтому я просто исправляю позже и регенерирую Resources.designer.cs
Обычно я делаю следующие этапы:
закрыть VS
командная строка: git merge (объединяет ветку src с текущей)
я вижу конфликт в Resources.resx
удалить файл Resources.Designer.cs (позже он будет восстановлен)
откройте Resources.resx с помощью какого-либо инструмента разрешения (я просто использую блокнот ++)
разрешить конфликты вручную (в блокноте, как правило, я ищу «‹‹‹», удаляю строки «‹‹‹», «-----», «>>>>», добавляю отсутствующие и сохраняю.
откройте VS с проектом, он будет жаловаться на отсутствие файла Resources.designer.cs.
дважды щелкните Resource.resx, добавьте в конце поддельную строку + сохраните (это воссоздает Resource.designer.cs)
удалить фальшивую строку, которую я создал ранее, и сохранить.