TortoiseGit/Winforms: разрешение Resource.resx при слиянии

Я новичок в TortoiseGit. Хотите знать, если я получаю конфликт в файле .resx, как мне разрешить его во время слияния? Например, я мог бы выбрать «использовать их» в меню, попытаться сделать вытягивание и нажатие, но правильный ли это подход? Могу ли я как-то использовать их и пересобрать с изменениями моего проекта? Отличий (а также перепутанного содержимого по сравнению с репозиторием) много - многим делать настоящее слияние. Спасибо за поиск?


person Buck    schedule 10.04.2014    source источник


Ответы (2)


Это старый вопрос, на который нет ответа. Однако разрешение конфликтов в файлах resx сводит меня с ума. Основная проблема заключается в том, что файлы resx могут быть изменены случайным образом при обновлении. Visual Studio не заботится о порядке. В результате может возникнуть множество тривиальных «конфликтов» из-за того, что элементы находятся в разных местах в двух файлах resx.

Я обнаружил, что ответ заключается в сортировке файлов resx по атрибуту имени перед слиянием. В этой статье объясняется, как это делается, и дается простой инструмент командной строки. Автор ссылается на то, как его можно интегрировать в различные инструменты сравнения/слияния. Его пример — Beyond Compare 3 (которую я использую), и эта статья содержит инструкции по как сделать интеграцию.

Я попробовал это, и мне впервые удалось объединить ветки с изменениями графического интерфейса без потерь, волос или часов ручного ремонта в Visual Studio.

Я надеюсь, что этот ответ актуален и может помочь людям, как это помогло мне.

person ScruffyDuck    schedule 23.06.2014

Мое решение немного хакерское, но оно также заботится о файле Resources.designer.cs.

VS автоматически генерирует Resource.designer.cs из Resources.resx, поэтому я просто исправляю позже и регенерирую Resources.designer.cs

Обычно я делаю следующие этапы:

  1. закрыть VS

  2. командная строка: git merge (объединяет ветку src с текущей)

  3. я вижу конфликт в Resources.resx

  4. удалить файл Resources.Designer.cs (позже он будет восстановлен)

  5. откройте Resources.resx с помощью какого-либо инструмента разрешения (я просто использую блокнот ++)

  6. разрешить конфликты вручную (в блокноте, как правило, я ищу «‹‹‹», удаляю строки «‹‹‹», «-----», «>>>>», добавляю отсутствующие и сохраняю.

  7. откройте VS с проектом, он будет жаловаться на отсутствие файла Resources.designer.cs.

  8. дважды щелкните Resource.resx, добавьте в конце поддельную строку + сохраните (это воссоздает Resource.designer.cs)

  9. удалить фальшивую строку, которую я создал ранее, и сохранить.

person thedrs    schedule 05.07.2018